Para creadores

SDK de idoo.dev

Tú hospedas tu API; idoo.dev pone la autenticación, los planes, los límites y el cobro. Tu única tarea: verificar que cada petición viene de nuestro gateway. Con el SDK son dos líneas.

¿Primera vez? Ve la guía completa paso a paso
Cómo funciona
Consumidor ──▶ api.idoo.dev/v1/{tu-api}/{ruta} ──▶ tu backend (valida key, plan, (verificas la firma cuota y rate limit) con este SDK)

El gateway reenvía cada petición autorizada a tu URL base agregando una firma HMAC-SHA256 calculada sobre timestamp.body con el secret exclusivo de tu API (lo obtienes y regeneras en tu panel de creador). Verificándola, tu backend solo acepta tráfico que pasó por los planes y límites de idoo.dev — nadie puede llamarte directo y saltarse el cobro.

PHP 8.0+

Sin dependencias. Vía Composer o copiando un solo archivo (sdk/php/src/Peticion.php).

composer require idoo/idoodev-sdk

Al inicio de tu endpoint:

use IdooDev\Peticion; $peticion = Peticion::desdeGlobals('TU_HMAC_SECRET'); $peticion->requerir(); // responde 401 y termina si la firma no es válida // Petición legítima — contexto del consumidor: $peticion->consumidorId(); // int — id del consumidor en idoo.dev $peticion->plan(); // "Free", "Pro", ... $peticion->esSandbox(); // bool — separa tus datos de prueba $peticion->json(); // body decodificado (o null)

¿Prefieres decidir tú la respuesta? Usa firmaValida(): bool en lugar de requerir(). Para Laravel hay un ejemplo de middleware en el README del SDK.

Node.js 16+

Sin dependencias. Incluye middleware listo para Express.

npm install idoodev-sdk
const { middlewareExpress } = require('idoodev-sdk'); // El SDK necesita el body CRUDO (el mismo que firmó el gateway): app.use(express.json({ verify: (req, _res, buf) => { req.rawBody = buf; } })); app.use(middlewareExpress(process.env.IDOO_HMAC_SECRET)); app.post('/pedidos', (req, res) => { // req.idoo = { consumidorId, plan, ambiente, esSandbox } res.json({ ok: true, consumidor: req.idoo.consumidorId }); });
Referencia: headers que agrega el gateway
HeaderContenido
X-Idoo-SignatureHMAC-SHA256 de "{timestamp}.{body_crudo}" con tu secret, en hexadecimal
X-Idoo-TimestampUnix timestamp con el que se calculó la firma (caduca a los 5 minutos)
X-Idoo-Consumer-IdId del consumidor en idoo.dev
X-Idoo-Ambientesandbox o produccion (según la key del consumidor)
X-Idoo-PlanNombre del plan contratado por el consumidor

¿Otro lenguaje? Calcula HMAC-SHA256("{timestamp}.{body}", secret), compáralo en tiempo constante con X-Idoo-Signature y rechaza timestamps con más de 5 minutos de antigüedad.

Pruébalo ahora mismo

La API Demo Echo es un backend de referencia construido con este SDK: devuelve tu petición e indica si la firma fue válida. Suscríbete gratis, crea tu API key y ejecuta:

curl -X POST "https://idoo.dev/v1/demo-echo/prueba" \ -H "Authorization: Bearer {tu_api_key}" \ -H "Content-Type: application/json" \ -d '{"hola":"idoo"}' # → responde firma_valida: true y el contexto del consumidor

¿Listo para publicar tu API en el marketplace?

Ir al panel de creador