我有created some code调用外部 API(我没有创建)。然而,它被描述为“以服务为中心”,而 REST API 是“以资源为中心”。
到底需要改变什么才能将其转变为基于服务的调用?我不明白有什么区别。我知道我需要使用 HTTP 动词,但我认为我已经使用 cURL 做到了这一点。这可以用 cURL 实现吗?
我传递的API包含一堆资源URL作为示例;
最佳答案
将资源视为名词,即数据库中的对象或记录。将 Action 视为动词,即函数调用。
第一个例子确实是以资源为中心的。它正在获取由 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
作为 URL 会更简洁一些。
关于php - REST 资源与服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403975/