例如,如果我创建一个名为Job
的模型module.exports = {
attributes: {
id: {
type: 'integer',
autoIncrement: true,
unique: true,
primaryKey: true
},
name: {
type: 'string',
required: true
}
}
蓝图生成 / job /:id
上的POST方法但我不希望允许用户自己指定ID。我希望服务器自动增加ID。因此,根本不应创建提到的POST api端点。要创建新作业,应该只有POST端点 / job
是否有api蓝图可以选择更改此行为? 或者除了禁用蓝图和手动定义api端点之外还有其他解决方法吗?
答案 0 :(得分:0)
蓝图路线是开始工作的一个很好的捷径,但最终我觉得你可能想要比大多数情况下提供的更多自定义行为。
要仅在单个模型上覆盖创建访问权限,您可以在该模型的控制器上添加自定义create
方法。所以,在/api/controllers/JobController.js
:
module.exports = {
create: function(req, res) {
var createParams = req.body;
// do whatever you want with the passed in parameters here
createParams.customCreate = true;
delete createParams.id;
Job.create(createParams).exec(function(err, createdJob) {
if (err) {
// handle the error
} else {
return res.send(createdJob);
}
});
},
// ...
};
如果您想一次管理所有型号的蓝图路线,请参阅here - 如果愿意,可以一起关闭蓝图。