为我的 API 端点使用 POST 和 JSON

Posted

技术标签:

【中文标题】为我的 API 端点使用 POST 和 JSON【英文标题】:Using POST and JSON for my API endpoints 【发布时间】:2017-11-04 11:09:37 【问题描述】:

我正在考虑对我的所有端点使用 POST 动词,并与这些请求一起发送 JSON 格式的正文。我知道这违反了传统 REST API 的准则/约定。但是,这样做是否存在任何特定的技术或安全问题?

【问题讨论】:

【参考方案1】:

我认为没有任何安全理由不这样做。如果您选择做一些自定义的事情,那么使用您的 API 是多么容易,人们必须先学习它才能使用它。也许看看 Facebook 的 graphql,它是一个非常好的 API 层协议,它还公开了一个帖子端点。

【讨论】:

【参考方案2】:

如果您要发送 JSON,POST 是正确的方法。只需发送一个 JSON 并在您的 API 中过滤掉错误的 JSON。在它被传递到任何数据存储系统之前。另一种方法是,您可以为端点添加一个基本身份验证标头(至少)。

您可以在此处查看操作方法:

How to send a correct authorization header for basic authentication

这会强制用户拥有您的令牌才能发送请求。确保您的令牌安全,您的端点就会安全。

【讨论】:

以上是关于为我的 API 端点使用 POST 和 JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何保护与 Android 应用程序交互的 PHP JSON api 端点?

在 getServerSideProps() 中直接导入 next.js API 端点

如何在不重新启动我的 Express.js 项目的情况下刷新 API 端点

WP Rest API 自定义端点在 GET 和 POST 上返回 false

如何使用 axios 将文件和 JSON 数据一起发送到 API 端点?

使用 Flask 从 API 调用端点的正确方法