【发布时间】:2017-05-05 03:58:31
【问题描述】:
我需要为我的应用程序创建一个可以接收单个 POST 请求的公共 API。更具体地说,我需要让用户能够将数据发布到我的数据库——用户将是另一个开发商店,他们会发布大量数据,所以我不能要求他们登录我的网站并开始填写出表格。我意识到 POST 数据通常是通过正文使用的,而不是查询参数(这是 GET)。
但是,我知道很多公共 API 都可以做到这一点(例如 https://developer.flightstats.com/api-docs/alerts/v1。如果您查看此站点并创建“飞行规则”,它们会保存您的调用并在您的参数返回 true 时返回 JSON )。这方面的最佳做法是什么?
我目前正在使用带 Sequelize 的 Express 和 PostgresQL。
问题:有没有办法通过 URI 参数发送 POST 请求,更重要的是,有没有一种安全的方法可以做到这一点?而且,如果没有,用户无需填写表格即可将数据发布到我的数据库的最佳方式是什么?
【问题讨论】:
-
到底是什么问题?没有任何 http 规则说 post 请求不能有参数。
-
@joe 所以你需要在 GET 请求中将数据插入数据库?
-
我在上面编辑了我的问题。我需要允许用户轻松地将数据(以及很多数据)保存到我的数据库中。 @neoDev,...是的,但是您可以在没有安全问题的情况下这样做吗?
-
您的 API 用户可以使用动态填写的表单吗? (例如,
var fd = new FormData();fd.append(...);) -
我想是的——我一直在考虑这个想法,而且绝对是迄今为止最好的解决方案(据我所知)。我一直在试图弄清楚是否可以通过 URI 安全地进行操作,但我不确定是否有好的方法。谢谢@KyleLin
标签: javascript postgresql express sequelize.js api-design