资源和端点有什么区别?

What is the difference between resource and endpoint?

我听说 "resource" 和 "endpoint" 指的是同一件事。好像resource是个新名词。

它们有什么区别? "resource" 是否意味着 RESTful 设计?

休息

ResourceEndpoint.

的 RESTful 子集

端点本身就是可以访问服务的位置:

https://www.google.com    # Serves HTML
8.8.8.8                   # Serves DNS
/services/service.asmx    # Serves an ASP.NET Web Service

一个资源指的是一个或多个被服务的名词,以命名空间的方式表示,因为它很容易被人类理解:

/api/users/johnny         # Look up johnny from a users collection.
/v2/books/1234            # Get book with ID 1234 in API v2 schema.

以上所有都可以被认为是服务端点,但只有最底层的组被认为是资源,RESTful简单地说。顶级组对其提供的内容没有表达。

一个 REST 请求就像一个由 名词(资源)和 动词(HTTP 方法)组成的句子:

  • GET(方法)用户名为johnny(资源)。
  • DELETE(方法)id 为 1234 的书(资源)。

非 REST

端点通常是指服务,但资源可能意味着很多东西。以下是一些资源示例,它们取决于使用它们的上下文。

URL:统一“资源”定位器

  • 可能是 RESTful,但通常不是。在这种情况下,端点几乎是同义词。

资源管理

词典

Something that can be used to help you:

The library was a valuable resource, and he frequently made use of it.

Resources are natural substances such as water and wood which are valuable in supporting life:

[ pl ] The earth has limited resources, and if we don’t recycle them we use them up.

Resources are also things of value such as money or possessions that you can use when you need them:

[ pl ] The government doesn’t have the resources to hire the number of teachers needed.


道德

术语 资源 根据定义有很多细微差别。这完全取决于其使用的上下文

根据 https://apiblueprint.org/documentation/examples/13-named-endpoints.html 资源 给定实体的 "general" 存储位置 - 例如/customers/30654/orders,而 端点 是对给定资源的具体操作(HTTP 方法)。所以一个资源可以有多个端点。

术语资源端点经常作为同义词使用。但实际上它们不是一个意思

术语端点 侧重于用于发出请求的URL
术语 资源 侧重于 数据集 ,即由请求 return 编辑的。

现在,同一个资源经常可以被多个不同的端点访问。
此外,相同的端点可以return不同的资源,具体取决于查询字符串。

让我们看一些例子:

访问同一资源的不同端点

查看以下不同端点的示例:

/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3

他们显然都可以在给定的 API.

中访问非常 相同的资源

也可以完全更改现有的 API。这可能会导致新端点使用全新和不同的 URLs:

访问相同的旧资源
/api/employees/3
/new_api/staff/3

一个端点访问不同的资源

如果您的端点 return 是一个集合,您可以使用查询字符串实现 searching/filtering/sorting。因此,以下 URL 都使用 相同的端点 (/api/companies),但它们可以 return 不同的资源(或资源集合,根据定义本身就是资源):

/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens

我的答案可能不是很好,但我可以。

自从更多地使用 HTTP 上的真正 RESTful Web 服务以来,我试图引导人们远离使用术语端点,因为它没有明确的定义,而是使用 REST 的语言,即资源和资源位置。

在我看来,端点是一个 TCP 术语。它与 HTTP 混为一谈,因为 URL 的一部分标识了一个监听服务器。

所以资源不是一个较新的术语,我不认为,我认为端点总是被盗用,我们意识到这一点,因为我们正在将 REST 作为一种 风格 共 API。

编辑

我写了关于这个的博客。

https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819

1.资源描述 “资源”是指API.

返回的信息

2。端点和方法 端点表示您如何访问资源,而方法表示允许与资源的交互(例如 GET、POST 或 DELETE)。

附加信息: 3。参数 参数是您可以与端点一起传递的选项(例如指定响应格式或返回的数量)以影响响应。

4.请求示例 请求示例包括一个使用端点的示例请求,显示了一些已配置的参数。

5.响应示例和架构 响应示例显示了来自请求示例的示例响应;响应模式定义响应中所有可能的元素。

来源- Reference link

考虑一个服务器,其中包含用户、任务及其奖励积分的信息。

  1. 用户和奖励积分是资源
  2. 一个端点可以与多个资源相关
  3. 端点可以使用描述或完整或 部分 URL

来源:API Endpoints vs Resources