AdonisJs能用于REST API吗?

4

非常抱歉,这是一个初学者的问题,但我还是想问一下!

我正在试着使用AdonisJs。我知道它是一个MVC框架,但我想使用该框架编写REST API。可是在网上找不到太多帮助。

我的两个问题如下:

  1. 该框架是否支持编写REST API?
  2. 如果第一个问题的答案是肯定的,那么最好的起点是什么?

1
也许可以使用 https://www.npmjs.com/package/adonis-jsonapi? - Will
1
制作一个REST API服务器就像从您的控制器返回JSON一样简单。response.json() - Aman Virk
3个回答

10

1. 我已经用AdonisJS创建了3个API项目,认为这是快速设置的理想工具。它从开始就包括许多功能,支持数据库迁移,并且通常文档描述得非常好。

您可以轻松创建JSON响应的路由:http://adonisjs.com/docs/3.2/response

Route.get('/', function * (request, response) {
  const users = yield User.all()
  response.json(users)
})

或将它们添加到控制器中,甚至可以通过令牌保护轻松地添加路由身份验证(所有文档都有记录):

Route.post('my_api/v1/authenticate', 'ApiController.authenticate')

Route.group('api', function () {
  Route.get('users', 'ApiController.getUsers')
}).prefix('my_api/v1').middleware('auth:api')

2. 看一下官方教程,你可能只需要约半个小时便能完成。 http://adonisjs.com/docs/3.2/overview#_simplest_example

  • 从定义一些路由开始,然后尝试使用JSON回显简单变量,并在常规视图中进行操作。
  • 将测试逻辑移到控制器中。
  • 阅读更多关于数据库迁移的内容,并添加一些简单模型。
  • 别忘了命令和工厂,因为你可以轻松在这里定义测试数据命令。这将在长期运行中节省大量时间。

请记住,在生产中运行系统需要安装Node.JS服务器(个人建议使用类似Node Forever JS这样的工具来运行)。


1
为了创建一个符合RESTful标准的API,你可以使用以下代码:

npm i -g @adonisjs/cli
# Create a new Adonis app
adonis new project-name --api-only

这个可能需要进一步解释,也许你可以添加一些 RESTful 函数的示例来说明它创建的功能? - OMGtechy
很难提供示例,因为此命令将创建类似于普通cli的脚手架。但是,它不会为视图添加任何边缘模板(因为它是RESTful)。当您运行adonis new project-name --api-only将创建一个带有JSON响应的默认路由。如果您需要更深入的内容,请告诉我。 - Jacopo Vendramin

0
  1. 是的,您可以编写REST API。
  2. 可以从配置数据库开始(npm i @adonisjs/lucid),然后转移到模块(如果您正在使用lucid),最后编写API。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接