php - REST 资源与服务

标签 php rest oop

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

到底需要改变什么才能将其转变为基于服务的调用?我不明白有什么区别。我知道我需要使用 HTTP 动词,但我认为我已经使用 cURL 做到了这一点。这可以用 cURL 实现吗?

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

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

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

最佳答案

将资源视为名词,即数据库中的对象或记录。将 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/

相关文章:

javascript - move_uploaded_file - 图像的文件名?

php - 如何在cakephp中的另一个条件中使用条件

javascript - Angular.js 加载、处理并显示通过 REST $resource 获取的动态模板

java - 方言错误消息流口水

java - 比类访问修饰符限制更少的成员访问修饰符有什么用?

php - 基本 Google Drive PHP API 上传脚本上的内存分配错误

php - 如何从 MYSQL 定义当前用户 ID?

java - 无法通过 JAVA 对 w REST API 进行 PATCH

php - 为什么 PHP 允许从其他实例调用私有(private)方法?

php - 将文件包含在我的类(class)中的最佳方式是什么?我正在做的事情经常中断