Base de datos local - JSON Server
JSON Server es una biblioteca que se conecta a una instancia de la base de datos SQL, almacena en tablas y consulta a través de un lenguaje JSON. Actualmente soporta SQL Server y tres idiomas de consulta: lenguaje de consulta MongoDB, Lenguaje de consulta de Azure DocumentDB y lenguaje de consulta de JSON Server. JSON Server no es una base de datos independiente, sino un middleware que acepta operaciones contra documentos JSON y los traduce a consultas SQL ejecutadas en el sistema subyacente.
Enlaces JSON Server:
Videotutoriales:
- JSONServer - Generador de REST APIs con Nodejs https://youtu.be/OAOCa2qYq2Y
- Backend con JSON server: https://youtu.be/HvFxeEelDYk
- JSON-Server en minutos: Guía de Instalación y Uso https://youtu.be/PfwQsKbUqYA
- SERVIDOR en Node.JS 🌐 Principios de HTTP https://youtu.be/52XZhmLWJzY
Configuración del servidor backend con JSON Server:
Este
código de Angular junto con el JSON Server permite crear y gestionar un
formulario reactivo que guarda los datos en una base de datos local
simulada.
1- Instala JSON Server: Instalar el servidor JSON
// bash
npm install -g json-server
npm install -g json-server@0.17.4
2- Crea un archivo db.json
con algunos datos
// Ejemplo de datos = db.json
{
"posts": [
{ "id": 1, "title": "json-server", "author": "typicode" }
],
"comments": [
{ "id": 1, "body": "some comment", "postId": 1 }
],
"profile": { "name": "typicode" }
}
3- Opción 1: Iniciar servidor JSON
json-server --watch db.json
Ahora, si vas a http://localhost:3000/posts/1 , obtendrás { "id": 1, "title": "json-server", "author": "typicode" }
3- Opción 2: Iniciar servidor JSON, y abriendolo en el puerto 3000
// bash
json-server --watch db.json --port 3000
Pasos: Configuración del servidor (JSON Server):
// Instalando JSON Server:
npm install -g json-server@0.17.4
// para visualizar la versión de JSON Server instalada
json-server -v
// Iniciando JSON Server:
json-server --watch db.json --port 3000
// Se mostrara en la pantalla lo siguiente:
\{^_^}/ hi!
Loading db.json (Cargando db.json)
// En caso de no haber creado el archivo db.json, se creará uno.
Vaya, db.json no parece existir
Creando db.json con algunos datos predeterminados
Done (Listo)
Recursos
http://localhost:3000/posts
http://localhost:3000/comments
http://localhost:3000/profile
Home
http://localhost:3000
Basándonos en el ejemplo db.json
, obtendrás las siguientes rutas:
GET /posts
GET /posts/:id
POST /posts
PUT /posts/:id
PATCH /posts/:id
DELETE /posts/:id
...
JSON Server: Características
JSON Server proporciona características que se espera que tenga una base de datos JSON estándar. Además, dado que JSON Server se basa en SQL DBs, hereda muchas características que son comunes en el mundo relacional que a menudo faltan en las bases de datos nativas JSON.
- Bases de datos y colecciones. Una base de datos en JSON Server es una instancia convencional de base de datos SQL, dentro de la cual se crean una o más colecciones de documentos a través de las API de JSON Server. A diferencia de la mayoría de las bases de datos JSON en las que las operaciones deben estar vinculadas a una sola colección, JSON Server admite operaciones de recolección cruzada.
- Manipulación de datos. JSON Server proporciona API para insertar documentos JSON en una colección. La supresión de documentos se hace mediante una declaración DELETE en la que se especifican los criterios de coincidencia de documentos. JSON Server no admite modificar un documento existente en este momento, una característica que será compatible en una futura versión. Actualmente, las modificaciones de documentos se pueden hacer la eliminación primero del documento de la colección, modificándolo en la aplicación, y luego insertando el nuevo documento de nuevo en la colección. JSON Server ofrece garantías de transacción. Los tres pasos se pueden envolver en una transacción, resultando en que no fallen algunos estados intermedios en caso de que algunos pasos fallen.
- Consultas. JSON Server proporciona un lenguaje de consulta para consultar documentos de JSON. El lenguaje es similar a XQuery, proporcionando mucho más poder expresivo que los idiomas de otras alternativas. JSON Server también admite otros dos idiomas populares, MongoDB y Azure DocumentDB.
- Transacciones. Todas las operaciones en JSON Server son seguras de transacciones. Además, un alcance de transacción puede abarcar más de un documento, en la misma colección o colecciones separadas.
- Características relacionadas con SQL. JSON Server hereda muchas
características de la base de datos SQL a la que se conecta. A
continuación se muestra una breve lista de características que son
cruciales para las tareas de administración:
- Seguridad. JSON Server utiliza el mecanismo de autenticación del SQL DB al que se conecta para el control de acceso. Un usuario puede acceder a una base de datos si SQL DB lo dice. JSON Server también disfruta de otras características de seguridad de SQL DBs, por ejemplo, cifrado.
- - Replicación. JSON Server almacena documentos JSON en bases de datos SQL. Una réplica de la base de datos dará lugar a una réplica de todos los datos de JSON. Como tal, es conveniente ofrecer una solución JSON para varios entornos de producción.
- Copia de seguridad. JSON Server mantiene bases de datos SQL que son visibles para los administradores de SQL DB. Los administradores pueden aplicar operaciones de copia de seguridad a la base de datos explícitamente.