Comment accepter une demande de type de contenu application/vnd.api+json
et rejeter quoi que ce soit d'autre?Comment traiter les en-têtes de requête dans Koa.js?
Comment puis-je accéder à la valeur x-api-key
en utilisant Koa.js?
Merci à l'avance
Comment accepter une demande de type de contenu application/vnd.api+json
et rejeter quoi que ce soit d'autre?Comment traiter les en-têtes de requête dans Koa.js?
Comment puis-je accéder à la valeur x-api-key
en utilisant Koa.js?
Merci à l'avance
C'est ma tentative de la première partie de la question, la négociation de contenu:
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
//const dataAPI = require('../models/traffic');
router.get('/locations/:geohash/traffic/last-hour', (ctx, next) => {
// some code for validating geohash goes here ...
if (ctx.request.type=='application/vnd.api+json') {
//ctx.body = dataAPI.getTrafficData(ctx.params.geohash, 'hours', 1);
ctx.body = { status: "success" };
ctx.type = "application/vnd.api+json";
next();
}
else {
ctx.throw(406, 'unsupported content-type');
// actual error will be in JSON API 1.0 format
}
});
Je reçois le statut 406 Not Acceptable
et unsupported content-type
en Postman lorsque je soumets la valeur Content- Tapez dans Postman tout ce qui n'est pas application/vnd.api + json. Sinon, je reçois la station 200 OK
et { "status": "success"
dans le corps.
sous la direction
n'ont pas trouvé mieux à cela, mais ci-dessous est un moyen rapide et sale pour extraire la valeur de x-api-key
. Cela fonctionne pour mon but:
var key = ctx.request.headers['x-api-key']
Qu'avez-vous essayé? – Evert
if (! Ctx.accepts ('application/vnd.api + json')) { ctx.throw (406, 'type de contenu non pris en charge'); } // mais n'obtient pas le statut 406 dans Postman. Pour x-api-key ne trouve aucune documentation – Roobie
Incluez un script complet et reproductible dans votre question si vous avez besoin d'aide! – Evert