如何通过 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 到数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过win forms将数据发布到网站c#

如何使用 post 请求异步将图像上传到 url?

数据发布到 URL 时如何获取响应

如何通过 HTTP 读取分支深层链接数据?

jquery $.post()返回数据

获取 url 时如何强制网络浏览器使用 POST?