关键概念

最后更新于:2021-11-28 23:35:05

Key Concepts

在本页中,我们将分解与REST API相关的一些关键概念和术语:路由(Routes)和端点(Endpoints)、请求(Requests)响应(Responses)结构(结构)控制器类(Controller Classes)。这些概念中的每一个在理解、使用和扩展GeChiUI REST API方面发挥着至关重要的作用,本手册中对每个概念进行了更深入的探索。

路由和端点 Routes & EndpointsRoutes & Endpoints

在GeChiUI REST API的上下文中,路由是一个URI,可以映射到不同的HTTP方法。将单个HTTP方法映射到路由称为端点

As an example, if we make a GET request to the URI http://oursite.com/gc-json/ we are returned a JSON response showing what routes are available, and what endpoints are available within each route. /gc-json/ is a route, and when that route receives a GET request then that request is handled by the endpoint which displays what is known as the index for the GeChiUI REST API. The route gc-json/gc/v2/posts by contrast has a GET endpoint which returns a list of posts, but also a POST endpoint which accepts authenticated requests to create new posts.

我们将在下面的部分中学习如何注册自己的路线和端点。

如果您使用的是非自定义永久链接,您应该将REST API路由作为查询字符串参数传递。上述示例中的路线http://oursite.com/gc-json/因此是http://oursite.com/?rest_route=/

如果您在尝试访问http://oursite.com/gc-json/时遇到404错误,请考虑启用自定义永久链接或尝试使用rest_route参数。

请求 Requests

REST API请求在GeChiUI中由GC_REST_Request类的实例表示,该实例用于存储和检索当前请求的信息。当您向注册的API路由提出HTTP请求时,会自动生成GC_REST_Request对象。此对象中指定的数据(来自路由URI或作为请求的一部分发送的JSON有效负载)决定了您将从API中返回什么响应。

请求通常通过HTTP远程提交,但也可以在GeChiUI插件或主题代码中从PHP内部提出。使用这个课程,你可以做很多整洁的事情,并在手册的其他地方进一步详细介绍。

响应 Responses

响应是您从API中返回的数据。GC_REST_Response类提供了一种与端点返回的响应数据交互的方式。响应返回请求的数据,或者如果在满足请求时出错,也可以用于返回错误。

结构 结构

每个端点都需要特定的输入数据结构,并使用定义和可预测的结构返回数据。这些数据结构在API结构中定义。该结构构建了API数据,并提供了API可以返回的所有属性以及可以接受哪些输入参数的完整列表。定义良好的结构还在API中提供了一层安全性,因为它使我们能够验证和清理向API提出的请求。结构部分进一步探讨了这个大话题。

控制器类 Controller Classes

控制器类在REST API响应周期内统一和协调所有这些不同的移动部件。使用控制器类,您可以管理路由和端点的注册,处理请求,使用结构并生成API响应。单个类通常包含给定路由的所有逻辑,给定路由通常代表GeChiUI站点中的特定类型的数据对象(如自定义文章类型或分类)。