我有created some code来调用外部API(我没有创建)。但是,它被描述为“以服务为中心”,而REST API则是“以资源为中心”。
究竟需要改变什么来将其转变为基于服务的呼叫?我不明白有什么区别。我知道我需要使用HTTP动词,但我想到我已经在使用cURL了。用cURL可以吗?
我传递的API包含一堆资源URL作为示例;
答案 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
作为网址会更清晰。