REST风格 - GET或POST - 怎么办?(RESTful - GET or POST -

2019-10-29 09:24发布

进出口工作的,我想是的RESTful Web服务。 我知道做事的CRUD方法,但我有一个即时通讯不完全地清楚一些事情。 所以这样的话:

我有一个在浏览器(客户端)收集一些数据的跟踪服务,然后把它发送给跟踪服务器。 有2个的情况下,一个在文件中不存在,一个地方没有。 最后,服务会返回已被注入到DOM一些元素。

所以基本上我需要2个Web服务:

  1. HTTP://mydomain.tld/profiles/
  2. HTTP://mydomain.tld/elements/

问题1:现在我只是使用GET,但IM改写服务器支持CRUD。 因此,在这种情况下,我必须使用POST如果配置文件不存在。 喜欢的东西HTTP://mydomain.tld/profiles/然后POST有效载荷掌握的信息进行保存。 如果配置文件存在我使用PUT和HTTP://mydomain.tld/profiles/ /放的有效载荷有数据保存。 所有好的,但问题是,据我所知,XMLHTTP不支持PUT。 现在是确定使用POST,即使它的更新?

问题2:正如我所说的服务返回一些元素被注入到DOM,当轨道而成。 从逻辑上讲,以保持它的RESTful,我想我将不得不使用POST / PUT以更新的姿态,然后让得到的元素注入。 但是,以节省服务器侧的带宽和资源,更有意义返回与POST / PUT到配置文件中的元素,即使它是一个不同的资源。 什么是您对此有何看法?

BR /淑娜

编辑:

问题3:在某些情况下,我只希望更新的姿态,并不会收到回元素。 可我仍然使用相同的资源,然后使用一个有效载荷参数指定,如果我想的元素,如“dont_receive_elements:真正的”

Answer 1:

关于问题#1,你确定XMLHTTP不支持“放”? 我只是跑http://www.mnot.net/javascript/xmlhttprequest/三个浏览器(Chrome浏览器,火狐,IE浏览器),并根据输出,“放”是成功的在所有浏览器。 继信息http://www.slideshare.net/apigee/rest-design-webinar (我强烈建议检查出的许多Apigee视频,并在宁静的API幻灯片),“放”,建议你提到的用例。

但是,您可以通过不同的思考一下你的数据完全避免这个问题。 是否有可能认为你有一个配置文件,并且为每个配置文件你有0个或更多套的有效载荷信息? 在这个模型中的两种情况:1。没有配置文件存在,对... /配置文件的POST创建配置文件/然后用职位来... /型材/ 123 /音轨/(或添加元素/跟踪数据... /简档/ 123 /元件/)2.资料存在,只需添加元素/跟踪数据

(对不起,而不了解您的详细模型,这是很难做到非常精确)。

至于问题#2 - 要与一个数据模型,其中一个配置0或多个元素,你可以更新配置文件(添加了必要的元素),然后返回更新档(和它的元素全图),为您节省任何额外得到。

更普遍的问题#2,作为API的开发人员,你必须在REST世界自由了相当数量的 - 如果你专注于使它容易和明显对消费者的API,那么你很可能罚款。

底线:退房www.apigee.com - 他们知道比我更



Answer 2:

@Richard - 非常感谢您的联系和反馈。 我到了该解决方案是使API简单干净,你在你的意见建议,为每个种源单独调用。

然后要能节省带宽并保持性能,我所做的工作方式类似于国内的代理,并调用一个GET,用于更新配置文件并返回元素的API在“非官方”的功能。 这一点,我知道了,是不是很宁静等,但它处理我的情况,是不是官方API的一部分。 究其原因,我需要它来支持GET为了这个,我需要从javascript和跨域调用它。

我想我可以通过使用JSONP解决了跨域,但我仍然要做出API“不洁” :)



文章来源: RESTful - GET or POST - what to do?