Wie man Anfrage Inhaltstyp von application/vnd.api+json
annehmen und alles andere zurückweisen?Wie verarbeitet man Anfrage Header in Koa.js?
Auch wie kann ich den Wert x-api-key
mit Koa.js zugreifen?
Vielen Dank im Voraus
Wie man Anfrage Inhaltstyp von application/vnd.api+json
annehmen und alles andere zurückweisen?Wie verarbeitet man Anfrage Header in Koa.js?
Auch wie kann ich den Wert x-api-key
mit Koa.js zugreifen?
Vielen Dank im Voraus
Dies ist mein Versuch, den ersten Teil der Frage, Content-Negotiation:
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
}
});
Ich Status bekommen 406 Not Acceptable
und unsupported content-type
in Postman, wenn ich den Wert für Content- einreichen Geben Sie Postman alles ein, das nicht Anwendung/vnd.api + json ist. Ansonsten bekomme ich die Station 200 OK
und { "status": "success"
in den Körper.
bearbeitet
keine besseren dazu aber unten ist eine schnelle und schmutzige Art und Weise zu extrahieren, um den Wert von x-api-key
gefunden. Es funktioniert für meinen Zweck:
var key = ctx.request.headers['x-api-key']
Was haben Sie versucht? – Evert
if (! Ctx.accepts ('application/vnd.api + json')) { ctx.throw (406, 'nicht unterstützter Inhaltstyp'); } // aber nicht den Status 406 in Postman bekommen. Für x-api-key kann keine Dokumentation gefunden werden – Roobie
Fügen Sie ein vollständiges, reproduzierbares Skript in Ihre Frage ein, wenn Sie Hilfe benötigen! – Evert