【问题标题】:API design with Node.JS使用 Node.JS 进行 API 设计
【发布时间】:2018-06-16 16:29:34
【问题描述】:

我正在设计一个带有 express/node 的 API,我想知道它是否需要显式设置请求和/或响应的标头,还是自动处理?正如我刚刚阅读了以下有关 RESTFUL API 最佳实践的内容:

对序列化格式使用 HTTP 标头

客户端和服务器都需要知道使用哪种格式进行通信。格式必须在 HTTP-Header 中指定。

Content-Type 定义请求格式。 Accept 定义了一系列可接受的响应格式。

https://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/

但我不确定这在实践中真正意味着什么。

app.delete('/LimeLINE/api/v1/users/delete/:boolean', (req, res) => {
    let inactive;
    try {
        inactive = req.params.boolean
    } catch (e) {
        log('e', 'app.delete(/LimeLINE/api/v1/users/delete/:boolean - e - 291 : ' + e)
        return res.status(500).send({
            message: "INTERNAL SERVER ERROR"
        })
    }
    //res.setHeader('Content-Type', 'application/json');
    user.deleteInActive(inactive, res)
})

【问题讨论】:

  • 正如@Drupad Singh 所说,Express 已经为您做了很多工作,但您仍然可以考虑使用this 来保护您的应用程序

标签: node.js api header request response


【解决方案1】:

如果您使用的是 Express,那么它已经为您做了很多工作。因此,您不需要在标头中指定内容类型,因为它已经提供了方法并处理了大部分标头部分 例如: res.json() ; 它已经将内容类型设置为 json。

如果处理错误,您可以指定“status”属性并将HttpStatus设置为UNAUTHORIZED、INTERNAL_SERVER_ERROR、BAD_REQUEST等。

所以您只需要使用内置的 express 函数即可完成所有工作。

【讨论】:

    【解决方案2】:

    我有一个 API 范围,我将 REST 概念与 express 结合使用。您已经拥有使用 Sequelize 的数据库的 ORM。

    点击以下链接:

    https://github.com/wandersonpereira/easy-api-node

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多