Closed jordidh closed 1 year ago
Si vols passar l'identificador incremental a través de les capçaleres (headers) de la crida REST, pots utilitzar el camp X-Request-ID o un camp personalitzat que comenci amb X-. Això és una convenció comuna per passar informació personalitzada a través de les capçaleres.
Per exemple, podríem passar l'identificador incremental a través del camp X-Request-ID de la següent manera:
GET /api/users/123 HTTP/1.1
Host: www.example.com
X-Request-ID: 456789
Això indicaria que la crida està fent referència a l'usuari amb l'ID 123 i que l'identificador de la crida és 456789.
Exemple de captura del request id
let requestId = req.headers['x-request-id'];
requestId = requestId || /*genenrem l'id*/
Retornar en el body de la resposta el camp "request-id" per informació del client. Posar-ho en l'objjecte ApiResult
Per afegir una funció de middleware a Express per generar un identificador abans que qualsevol altra crida, pots fer el següent:
const express = require('express');
const app = express();
// Funció de middleware per generar l'identificador
const generateRequestId = (req, res, next) => {
req.requestId = Math.floor(Math.random() * 1000000);
next();
}
// Afegir la funció de middleware a l'aplicació Express
app.use(generateRequestId);
// Definir les rutes
app.get('/api/users/:id', (req, res) => {
const requestId = req.requestId; // Recuperar l'identificador generat pel middleware
// Fer alguna cosa amb l'identificador de la crida...
res.send('La crida ha estat satisfactòria');
});
// Iniciar el servidor
app.listen(3000, () => {
console.log('Servidor en marxa en el port 3000');
});
Objectiu: Per tal de poder treballar amb múltiples clients i cada client tenir els seus contenidors és important afegir una API per gestionar clients (GET, POST, PUT, DELETE) i relacionar el model dels contenidors amb els clients.
Implementar-ho de la mateixa manera que s'ha implementat l'API de contenidors, amb OPENAPI. Fer servir HATEOAS.
Cada client haurà de tenir les següents dades:
Important: s'haurà de modificar els contenidors per tal de relacionar-los amb els clients
APIs que s'hauran de crear per gestionar clients:
Modificació de les APIs de contenidors per afegir un clientId a cada contenidor i construir APIs per treballar amb els contenidors d'un client concret:
[GET] /v1/client/[clientId]/containers
i[GET] /v1/containers?clientId=[clientId]