REST资源与服务

时间:2015-07-14 10:23:29

标签: php rest oop

我有created some code来调用外部API(我没有创建)。但是,它被描述为“以服务为中心”,而REST API则是“以资源为中心”。

究竟需要改变什么来将其转变为基于服务的呼叫?我不明白有什么区别。我知道我需要使用HTTP动词,但我想到我已经在使用cURL了。用cURL可以吗?

我传递的API包含一堆资源URL作为示例;

  

获取http://api.privateservice.com/Person?ID=123

     

POST http://api.privateservice.com/Person/SaveDetails/123

1 个答案:

答案 0 :(得分:2)

将资源视为名词,即数据库中的对象或记录。将动作视为动词,即函数调用。

第一个例子确实是以资源为中心的。它获取由123标识的Person类型的资源。

第二个例子不是以资源为中心的,因为它本质上是一个函数调用。 REST和HTTP已经建立了保存资源的约定。在这种情况下,您只需要PUT到资源的URL,即您使用GET检索的相同URL。

所以使用:

上传JSON(或任何格式)
PUT http://api.privateservice.com/Person?ID=123

如果你只传递一些属性,而不是整个资源,那么还有另一个标准,PATCH:

PATCH http://api.privateservice.com/Person?ID=123

顺便说一句,使用http://api.privateservice.com/people/123作为网址会更清晰。