mirror of
https://github.com/strapi/strapi.git
synced 2025-07-23 17:10:08 +00:00
Add middleware to parse data request
This commit is contained in:
parent
8408538f21
commit
9dd94e72a2
23
lib/configuration/hooks/jsonapi/helpers/request.js
Normal file
23
lib/configuration/hooks/jsonapi/helpers/request.js
Normal file
@ -0,0 +1,23 @@
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
|
||||
// Public node modules.
|
||||
const _ = require('lodash');
|
||||
|
||||
/**
|
||||
* JSON API helper
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
|
||||
default: {},
|
||||
|
||||
/**
|
||||
* Parse request
|
||||
*/
|
||||
|
||||
parse: function (ctx) {}
|
||||
};
|
@ -6,6 +6,7 @@
|
||||
|
||||
// Public node modules.
|
||||
const _ = require('lodash');
|
||||
const request = require('./helpers/request');
|
||||
const response = require('./helpers/response');
|
||||
|
||||
/**
|
||||
@ -64,6 +65,18 @@ module.exports = function (strapi) {
|
||||
strapi.app.use(interceptor);
|
||||
|
||||
cb();
|
||||
},
|
||||
|
||||
parse: function * (next) {
|
||||
// Verify Content-Type header
|
||||
if (this.request.type !== 'application/vnd.api+json') {
|
||||
this.status = 406;
|
||||
this.body = '';
|
||||
}
|
||||
|
||||
request.parse(this);
|
||||
|
||||
yield next;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -12,6 +12,7 @@ const _ = require('lodash');
|
||||
|
||||
// Local utilities.
|
||||
const regex = require('../../../../util/regex');
|
||||
const JSONAPI = require('../jsonapi')();
|
||||
|
||||
/**
|
||||
* Router hook
|
||||
@ -86,6 +87,7 @@ module.exports = function (strapi) {
|
||||
|
||||
// Add the `globalPolicy`.
|
||||
policies.push(globalPolicy(endpoint, value, route));
|
||||
policies.push(JSONAPI.parse);
|
||||
|
||||
if (_.isArray(value.policies) && !_.isEmpty(value.policies)) {
|
||||
_.forEach(value.policies, function (policy) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user