为我的 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