文档中并不清楚如何使用现有的 Keystone 模型来公开在 Keystone.js 应用程序中返回 json 的 API 端点。我只是希望能够使用 Keystone 公开 REST API 端点,并能够使用 Keystone CMS 功能通过与这些端点交互来管理内容。谢谢!
问问题
4812 次
2 回答
5
现在他们已经标准化了管理 API,我发现使用相同的方法非常简单。对于为我的 react 应用程序提供动力的只读 API,我已经在我的 routes/index.js 中放置了类似的内容
router.get('/api/:list/:format(export.csv|export.json)',middleware.initList,require('keystone/admin/server/api/list/download'));
我制作了自己的管理员 initList 中间件版本:
exports.initList = function(req, res, next) {
console.log('req.keystone', req.keystone);
req.keystone = keystone;
req.list = keystone.list(req.params.list);
if (!req.list) {
if (req.headers.accept === 'application/json') {
return res.status(404).json({ error: 'invalid list path' });
}
req.flash('error', 'List ' + req.params.list + ' could not be found.');
}
next();
};
于 2017-05-26T20:46:41.550 回答
3
您可以考虑使用:
- @creynders的 restful-keystone,或
- 基石休息@danielpquinn
我从来没有真正使用过其中任何一个,因为我有自己的实现,一旦 Keystone 实现它的插件架构,我将开源它(请参阅Keystone 问题 #912:Proposed Keystone 包架构)。
我怀疑一旦 Keystone 更加“插件友好”,许多其他类似的模块就会开始出现。
于 2015-03-24T09:03:45.510 回答