Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于获取RESTful GET JSON输出并将其重定向到POST JSON输入的想法_Json_Rest_Redirect_Post_Get - Fatal编程技术网

关于获取RESTful GET JSON输出并将其重定向到POST JSON输入的想法

关于获取RESTful GET JSON输出并将其重定向到POST JSON输入的想法,json,rest,redirect,post,get,Json,Rest,Redirect,Post,Get,最近,我一直在努力使用Python和Flask为最终用户公开RESTful API。目前,只有GET方法,没有发布。。。直到现在 向我提出的一个有趣的请求是,弄清楚是否可以接受一个GET请求,该请求将输出为JSON并将其重定向回另一个web服务作为POST请求 如果有意义的话,可以把它想象成通过web服务复制数据。或者像“获取重定向数据帖子” 为了进一步说明这一点,我有一个简单的GET请求: urllib2.Request("http://localhost:5000/request/secur

最近,我一直在努力使用Python和Flask为最终用户公开RESTful API。目前,只有GET方法,没有发布。。。直到现在

向我提出的一个有趣的请求是,弄清楚是否可以接受一个GET请求,该请求将输出为JSON并将其重定向回另一个web服务作为POST请求

如果有意义的话,可以把它想象成通过web服务复制数据。或者像“获取重定向数据帖子”

为了进一步说明这一点,我有一个简单的GET请求:

urllib2.Request("http://localhost:5000/request/security/773/20110101")
输出是JSON,我想获取该数据并将其发回:

http://localhost:5000/submit/transaction/773/20110101

假设数据映射是一对一的(事实就是如此)。有没有一种方法可以通过服务器端的一次调用来实现这一点?这样做是否明智?只是寻找想法、想法和评论。

似乎很简单。为什么不直接从您的请求/安全处理程序发送帖子

def request_security_handler():
    ....
    data = "Data"
    urllib2.Request("/submit/transaction/773/20110101", data)
    return data
如果发布是可选的,您可以做如下操作:

urllib2.Request("http://localhost:5000/request/security/773/20110101?RepostResultTo=/submit/transaction/773/20110101")
然后:

def request_security_handler(RepostResultTo):
    ....
    data = "Data"
    urllib2.Request(RepostResultTo, data)
    return data

在任何情况下,如果这是与服务器的一次往返,服务器将不得不自己完成POST。客户机将无法从get中获得结果,然后进行两次往返的POST。

我远非web服务大师(因此评论),但我正在阅读的一本书建议,要制作一个适当的RESTful应用程序,所使用的HTTP谓词需要符合其预期目的。虽然这不能回答你的问题,但我想问一下这种情况下的“为什么”。正如在“显式使用HTTP方法”一节中提到的。感谢您的评论,Jared。我也不是一个WS-guru,但从我所阅读的内容来看,O'Reilly的“RESTfulWeb服务食谱”描述了执行事务的一章。我希望了解的可能是,扩展这个概念,获取GET请求的输出,并将这些输出变成我的事务。如果你有这本书,那就是213页。@mastashaka57我没有这本书。我想我会担心的问题是,如果你正在转发一个GET to POST。在请求的核心仍然有一个GET请求。如果此请求要修改数据,我将非常谨慎地执行GET请求,因为这些请求可以保存/缓存/等等。不,我遵循HTTP动词到T。GET请求只是一个读取请求。感谢您的详细响应。问:我真的很喜欢可选职位的概念。我是否可以为这种处理使用自定义URI?也许我可以使用{account from}/{account to}/{date from}/{date to}?在服务器端,它将适当的GET消息路由到/request/security,并将适当的POST消息路由到/submit/transaction。输入变量将覆盖我的两个请求。也许您可以展示一些更详细的示例?Yikes,这确实不利于GET请求没有任何副作用(除了日志记录和访问者计数)@mastashake57如果你真的想让它进入一个请求,那么换一种方式:向接收服务器发布关于如何在该POST请求的实体体中发布信息的信息。当然,你这样做,看起来你已经拥有了所有需要的信息。Marjan是正确的,不过,为了保持安静,你应该先发帖子,然后返回你想要的信息,而不是从GET发帖子。从技术上来说,这并不重要,但从天上掉馅饼的角度来看,最好从这篇文章开始。我感谢你的反馈,ers81239。有了你的意见,我想我对工作有了一个很好的想法。谢谢