如何通过 URL 将数据 POST 到数据库? [关闭]
Posted
技术标签:
【中文标题】如何通过 URL 将数据 POST 到数据库? [关闭]【英文标题】:How do you POST data to a database via URL? [closed] 【发布时间】: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
【参考方案1】:
您的客户不需要填写表格,他们可以致电您的restfulapi
。
你需要做restful api server
restful api 客户端参见下面的示例
$.ajax(
type: 'POST',
url: '/url',
data: JSON.stringify(name: 'jonas',"age":30),
success: function(data)
alert('success');
,
contentType: "application/json",
dataType: 'json'
);
检查这个How to POST JSON data with Curl from Terminal/Commandline to Test Spring REST?
也可以查看What exactly is RESTful programming?
为了安全起见,您可以使用basic auth / digest auth
或任何其他根据您的需要自定义的身份验证
【讨论】:
很高兴得到反对票的理由:)。他想要在不填写表格的情况下在数据库中发布的最佳方式。 是的,对不起,这里有一些卑鄙的人——我也明白了,见上文 :) 所以我知道 POST 数据是通过正文发送的——这是通过正文发送的吗JSON?谢谢你的回答,很详细!以上是关于如何通过 URL 将数据 POST 到数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章