Sequelize REST API生成器
我正在开发一个Nodejs应用程序,我的数据库是Postgres,而且我使用Sequelize作为我的ORM,因为它对迁移有很好的支持。
我正在寻找一个基于我定义的模式的良好的REST API生成器。 我面临两个主要障碍,它们是生成器在创build关联API路由和缺乏ACL支持方面做得不好。 在关联的前面,我的模式有多个层次的关联,例如..
Student.hasMany(Courses); Courses.hasMany(Subjects);
所以理想情况下生成的REST API应该是这样的
/student/:student_id/course/:course_id/subject/:subjectId
我发现有几个项目正在这样做,但不完整。
- https://github.com/sequelize/sequelize-restful – 很好,但没有ACL支持
- https://www.npmjs.org/package/restizr – 处于alpha阶段,不会生成关联的API路由。
有没有支持这个模块?
我会build议restify它相当简单的设置和路由相当容易pipe理。
类似下面的事情会让你开始。
server.get( '/student/:student_id/course/:course_id/subject/:subjectId', function(req, res, next) { Subjects.find({ where: { 'id': req.params.subjectId, 'courses.id': req.params.course_id, 'student_id.id': req.params.student_id }, include: [{ model: Courses, include: [{ model: Student }] }] }).success(function(results) { console.log(results); }); });
你也可以减less你需要用这样的东西写的路线数量。 就个人而言,我不会推荐它,因为你为了某种打字而牺牲了清晰度和灵活性。
var models = { 'subjects': Subjects, 'courses': Courses, 'students': Students }; server.get( '/:model/:id', function(req, res, next) { models[req.params.model] .find(req.params.id) .success(function(results) { console.log(results); }); });