Estás construyendo un frontend, pero el backend no está listo. Necesitas una API REST que devuelva JSON realista ahora mismo, con GET, POST, PUT y DELETE funcionando, para que puedas seguir codificando en lugar de esperar.
Para eso sirve json-server. Apúntalo a un único archivo JSON y servirá una API REST completa en segundos, sin necesidad de código de backend. Su hermano, JSONPlaceholder, va un paso más allá: una API falsa alojada que puedes llamar sin instalar nada. Esta guía muestra cómo usar ambos, dónde se quedan cortos y cuándo pasar a un mock basado en esquemas en Apidog.
Para tener una visión más amplia sobre la falsificación de endpoints, consulta qué es una API mock. Aquí nos centramos en las dos herramientas a las que los desarrolladores recurren primero.
¿Qué es json-server?
json-server es una herramienta npm de código abierto que convierte un archivo JSON plano en una API REST real. Escribes un archivo db.json describiendo tus recursos, ejecutas un comando y obtienes rutas CRUD estándar respaldadas por ese archivo. Las solicitudes de escritura realmente modifican el archivo, por lo que los datos persisten entre solicitudes durante tu sesión.
Es la forma más rápida de obtener una API funcional para prototipos, desarrollo frontend, demostraciones y pruebas, sin levantar una base de datos o escribir código de servidor. El proyecto reside en GitHub y es ampliamente utilizado precisamente para esta tarea.
Instalar y ejecutar json-server
Instálalo desde npm:
npm install json-server
Crea un archivo db.json en tu proyecto. Las claves de array de nivel superior se convierten en rutas de colección; los objetos de nivel superior se convierten en rutas de un solo recurso:
{
"posts": [
{ "id": "1", "title": "First post", "views": 100 },
{ "id": "2", "title": "Second post", "views": 250 }
],
"comments": [
{ "id": "1", "text": "Nice work", "postId": "1" }
],
"profile": {
"name": "apidog"
}
}
Inicia el servidor:
npx json-server db.json
Se ejecuta en http://localhost:3000 por defecto. Eso es todo; ahora tienes una API en vivo.
Nota sobre las versiones: json-server v1 eliminó la antigua bandera--watch, por lo quenpx json-server db.jsones el comando actual. Si estás en la línea 0.x anterior, seguirás viendojson-server --watch db.jsonen los tutoriales.
Las rutas que obtienes gratis
A partir del db.json anterior, json-server genera una superficie REST completa.
Para el array posts:
GET /posts
GET /posts/:id
POST /posts
PUT /posts/:id
PATCH /posts/:id
DELETE /posts/:id
Para el objeto profile:
GET /profile
PUT /profile
PATCH /profile
Las consultas también están integradas. La sintaxis v1 usa dos puntos para las condiciones:
GET /posts?views:gt=100 # vistas mayores que 100
GET /posts?views:lte=50 # vistas menores o iguales a 50
GET /posts?_sort=-views # ordenar por vistas, descendente
GET /posts?_page=1&_per_page=25 # paginación
GET /posts?_embed=comments # incluir comentarios relacionados
Los operadores disponibles incluyen lt, lte, gt, gte, eq, ne, in, contains, startsWith y endsWith. Para un archivo plano y un solo comando, eso es mucha API.
JSONPlaceholder: una API falsa sin configuración
A veces ni siquiera quieres instalar una herramienta. JSONPlaceholder, del mismo autor, es una API REST falsa gratuita alojada en jsonplaceholder.typicode.com. Lo llamas directamente desde tu código:
curl https://jsonplaceholder.typicode.com/posts/1
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident",
"body": "quia et suscipit..."
}
Viene con seis recursos preestablecidos:
/posts(100 elementos)/comments(500)/albums(100)/photos(5000)/todos(200)/users(10)
También acepta POST, PUT, PATCH y DELETE, pero aquí está el truco: las escrituras son simuladas. La API devuelve una respuesta realista como si el cambio hubiera ocurrido, pero no se guarda nada. Actualiza y tu "nueva" publicación desaparecerá. Esto está bien para conectar el código de la interfaz de usuario con datos predecibles; no es un backend real.
json-server vs JSONPlaceholder
| json-server | JSONPlaceholder | |
|---|---|---|
| Configuración | Instalar paquete npm, escribir db.json |
Ninguna, solo llamar a la URL |
| Ejecución | Localmente, tu máquina | Alojado, público |
| Datos personalizados | Sí, tus propios recursos | No, recursos fijos |
| Las escrituras persisten | Sí, en db.json |
No, simuladas |
| Mejor para | Prototipos con tus propias formas | Demostraciones rápidas y aprendizaje |
Recurre a JSONPlaceholder cuando quieras datos en este instante y no te importe cuáles sean. Recurre a json-server cuando necesites tus propios recursos y escrituras que persistan.
Dónde estas herramientas se quedan cortas
json-server y JSONPlaceholder son excelentes en una cosa: servir JSON rápidamente. Empiezan a ser un problema una vez que un proyecto crece más allá de un prototipo individual.
- Sin validación real. No imponen un esquema. Publica una cadena donde debería ir un número y se almacena sin problemas. Tu API real lo rechazaría.
- Sin datos dinámicos o inteligentes. Las respuestas son lo que sea que esté en el archivo. No hay una forma integrada de devolver un correo electrónico aleatorio nuevo o una fecha futura por solicitud.
- Local y de un solo usuario. json-server se ejecuta en tu portátil. Un compañero de equipo o un trabajo de CI no pueden acceder a
localhost:3000. JSONPlaceholder es compartido, pero no puedes personalizarlo. - Se desvía de tu especificación. Los datos falsos viven en un archivo separado, desconectados de tu contrato OpenAPI, por lo que ambos se separan a medida que la API evoluciona.
- Escrituras simuladas (JSONPlaceholder). Cualquier cosa con estado, como un carrito o un flujo de varios pasos, no se puede probar con él.
Si has superado un archivo plano, nuestros resúmenes de herramientas para simular endpoints REST y servidores de mock de API gratuitos y económicos cubren el siguiente nivel, y herramientas de mock de API online comparadas pone las opciones alojadas una al lado de la otra.
Cuándo pasar a un servidor de mock real
Un mock consciente del esquema soluciona todas las limitaciones anteriores. Aquí es donde Apidog toma el relevo de json-server.

- Dirigido por esquema, no por archivo. Define un endpoint (o importa tu especificación OpenAPI) y Apidog lo simula automáticamente. El mock y el contrato se mantienen sincronizados porque son la misma definición.
- Datos inteligentes y dinámicos. Apidog lee los nombres y tipos de campo y devuelve valores realistas: un correo electrónico válido para un campo
email, una fecha paracreatedAt, un número paraprice. Puedes adjuntar reglas tipo Faker por campo para un control total. Nuestra guía sobre Faker.js en Apidog y el recorrido más amplio del generador de datos de prueba profundizan en la producción de valores realistas. - Una URL en la nube compartible. Apidog proporciona al mock una URL alojada a la que todo tu equipo y tu pipeline de CI pueden llamar, no solo
localhost. - No se requiere Node. No hay ningún paquete que instalar por proyecto ni ningún
db.jsonque supervisar.
Simular la misma API en Apidog
- Descarga Apidog y crea o abre un proyecto.
- Añade un endpoint, por ejemplo
GET /posts, y define su esquema de respuesta (o importa un archivo OpenAPI existente). - Apidog genera una URL de mock y comienza a devolver datos inteligentes y realistas para cada campo de inmediato.
- ¿Necesitas valores específicos? Añade una regla de mock por campo para fijar la salida.
- Comparte la URL del mock con tu equipo o incorpórala a tu suite de pruebas y CI.

Mantienes la velocidad de "API en minutos" de json-server, y ganas validación, datos dinámicos y una URL a la que todos pueden acceder.
Preguntas frecuentes
¿json-server es gratuito? Sí, es de código abierto y de uso gratuito. JSONPlaceholder también es gratuito.
¿json-server persiste los datos? Sí. POST, PUT, PATCH y DELETE escriben de nuevo en tu db.json, por lo que los cambios sobreviven entre solicitudes mientras el servidor se ejecuta. JSONPlaceholder simula las escrituras y no guarda nada.
¿Puedo usar json-server en producción? No. Está diseñado para prototipos y pruebas. No tiene validación real, autenticación o una historia de escalabilidad.
¿Cuál es la diferencia entre json-server y un servidor de mock como Apidog? json-server sirve un archivo estático como una API. Apidog simula a partir de tu esquema de API, devuelve datos realistas dinámicos y expone una URL compartida en la nube. Consulta qué es una API mock y el resumen de herramientas de mock REST para obtener contexto.
¿Cómo obtengo datos falsos realistas en lugar de filas estáticas? Usa un generador. Un generador de datos de prueba crea registros variados y realistas, y el mock de Apidog hace esto automáticamente desde tu esquema.
En resumen
json-server convierte un archivo JSON en una API REST funcional con un solo comando, y JSONPlaceholder te proporciona una API falsa alojada sin ninguna configuración. Ambos son perfectos para desbloquearte rápidamente. Una vez que necesites validación de esquemas, datos dinámicos, estado persistente y una URL a la que tu equipo pueda acceder realmente, un archivo plano no es suficiente. Esa es la línea donde el servidor de mock de Apidog toma el relevo. Descarga Apidog, importa tu especificación y tu mock coincidirá con el contrato real desde la primera solicitud.
