RESTful API的最佳节点架构?

时间:2016-12-23 18:01:36

标签: node.js rest

我开始研究一个新的应用程序,后端只是一个REST API。我对Node很新,所以我从Express开始。我还处于早期阶段,所以我正在寻找有关正确框架的建议。

我看过Express,Koa,HAPI,LoopBack和Restify。我喜欢Restify,但它似乎并不是最受欢迎的选择。我也喜欢LoopBack的外观。

我喜欢以某种形式使用Swagger / OpenAPI来记录我的API。我已经看到许多Express模块​​也被其他人修改过来与Restify一起工作。

有什么建议吗?谢谢!

3 个答案:

答案 0 :(得分:1)

Express有很多支持,但您可以将所有您喜欢使用的内容混合在一起。我喜欢使用node-mysql节点模块,以便我可以在后端使用mysql。老实说,我只是创建自己的API。它们非常容易构建。您只需在js文件中定义路由,然后为每个端点定义get,post和delete函数。我希望有所帮助。

编辑:这是一个使用NodeJS,Express和MySQL制作REST API的教程。如果您知道自己在使用javascript做什么,这将在不到几个小时的时间内完成。

http://www.yogasaikrishna.com/simple-restful-api-using-nodejs-express-and-mysql/

答案 1 :(得分:1)

如果您是Node的新手,我会继续使用express。它有很多documentation,非常灵活,并且得到了积极的维护。使用express可以轻松利用CRUD并使用JSON进行响应。它包括一个路由器,例如,它可以更容易地为路由添加诸如/ api / v1之类的东西,并为应用程序的特定部分包含中间件,这样可以更容易地在一台服务器上维护多个版本的API。简单的回声路径就像:

var express = require('express')
var bodyParser = require('body-parser')

var app = express()
router = express.Router()
// Use middleware to parse JSON request body
router.use(bodyParser.json())

// prefix router with /api/v1/router
app.use('/api/v1', router)

// /api/v1/echo route
router.post('/echo', function(req, res) {
    // read the property message from the request body
    var message = req.body.message

    // check if message from request body is not null
    // if it it not, respond with a status of 200 and
    // send message back to client.
    // if message was null, respond with a status of
    // 400 (bad request) with an object containing
    // an error property indicating the request body is
    // missing the message property
    if(message)
        res.status(200).send({
            message: message
        })
    else
        res.status(400).send({
            errors: 'No message property in request body.'
        })
})

app.listen(3000, function(err) {
    if(err)
        return console.error(err)

    console.log('Server listening at http://localhost:3000/')
})

答案 2 :(得分:1)

我听说sails.js有一个非常强大的cli,可以让你的路线快速启动和运行。

我个人喜欢Express,因为大多数人都使用它,如果你学习了express,那么你将能够相当容易地阅读很多其他的开发人员API代码。一旦你学习了表达,你可能想尝试其他框架,但在那之前我会建议只使用Express。

我听说还有一些专注于安全性的框架。如果您对安全实践有感情,可能需要查看该安全实践。

Socket.io非常棒,可以让您实时查看服务器上的更新。而Hapi.js似乎是最受欢迎的。我只和Express一起搞砸了,玩了一下Socket.io,但我肯定会学习Express和Socket.io