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); }); });