一致的基础架构REST API是一致的,可读性强。这是自我记录。
GET wp-json/wp/v2/posts
非常清楚它的作用。信息技术GET
这是一些帖子。
您有一个命名空间:wp
, a版本:v2
和对象集合posts
你能猜到什么吗:GET wp-json/wp/v2/posts/5
做怎么样:GET wp-json/wp/v2/posts/5/comments
怎么样:GET wp-json/shop/v2/orders/345/lines/11/price
开发人员可以很容易地猜测,这将得到线路的价格11
已订购345
即使没有阅读文档。开发人员甚至可以很容易地判断出它来自shop
插件,因为它是命名空间。
怎么样POST /wp-json/v2/posts title=New Blog Post
怎么样PUT /wp-json/v2/posts title=New Title
这也很清楚。这是一个新的帖子。顺便说一下,它返回新帖子的ID。这与AJAX或REST API无关。AJAX只是一种技术accesses REST API。然而,在此之前,您必须提出一系列抽象的ajax函数名,如:get_price_for_lineitem( $order, $line )
. 这将只返回一个数字,还是一个JSON对象?我不确定,文件在哪里。哦是ajax调用get_order_line_price
或get_lineitem_price
.
开发人员不必做出这些决定,因为现有的wp-json
api提供了良好的base model 创建自己的端点时遵循。当然,插件或api开发人员可以打破这些规则,但一般来说,遵循已经设置的标准更容易,大多数开发人员更愿意遵循已经设置的模式(看看jQuery模式现在有多普遍)。
没有分心的抽象POST /wp-json/mysite/v1/widgets title=Foobar
作品没有。我只想创建一个新的Widget
我想要身份证作为回报。我想在不刷新页面的情况下,从我前端的一个表单执行它。如果我请求一个URL,我不在乎它是PHP、C#、ASP。NET或任何其他技术。我只想创建一个新的小部件。
REST API将后端与前端分离。从技术上讲,如果您的API足够好,您可以更改整个后端堆栈。只要保持相同的REST API结构,依赖于该API的任何内容都不会受到影响。
如果您的REST API足够简单且一致,请使用Widgets
作为对象和名词/标识符的集合,如Widget/2
为了表示单个实体,用一种截然不同的技术编写该API非常简单,因为它或多或少是基本的数据库管道代码。
使用标准HTTP请求谓词
restapi利用了web工作方式的核心,以及您使用的映射到标准数据CRUD函数的动词(读:action)。
CREATE : POST
READ : GET
UPDATE : PUT/PATCH
DELETE : DELETE
有更多的HTTP动词,但这些是基本的。互联网上的每个请求都使用这些动词。REST API位于web基于请求构建的模型的正上方。不需要任何通信层或两者之间的抽象模型。它只是对URL的标准http请求,并返回响应。你再简单不过了。
从本质上讲,它使开发人员更加了解web实际工作的细节,当您更接近于了解底层协议的工作方式时,您最终会开发出更高效、更好的产品。