资源和端点有什么区别?

B S*_*ven 127 api rest uri endpoint restful-architecture

我听过"资源"和"端点"都指的是同一件事.资源似乎是一个较新的术语.

他们之间有什么区别?"资源"是否意味着RESTful设计?

cch*_*ain 90

我将资源描述为端点的RESTful子集.

在REST中,资源通常是指在API端点处公开的某些对象或对象集.

https://www.google.com    # Serves HTML
8.8.8.8                   # Serves DNS
/services/service.asmx    # Serves an ASP.NET Web Service
Run Code Online (Sandbox Code Playgroud)

端点本身只是对接受可能是也可能不是RESTful的Web请求的uri的引用.

/api/users/johnny         # Look up johnny from a users collection.
/v2/books/1234            # Get book with ID 1234 in API v2 schema.
Run Code Online (Sandbox Code Playgroud)

来自w3元数据文档的以下参考不是指一般意义上的资源,而是仍然赋予这两个术语如何相关的含义:

3.3术语

服务端点:使用WS-Addressing端点引用可寻址的Web服务.在本规范的上下文中,假设消费者的主要目标是与该服务交互.

元数据资源:一种专用Web服务,可使用WS-Addressing端点引用或URL进行寻址,其主要目的是公开与服务端点关联的元数据的XML表示.

虽然从技术上讲,单个Web服务既可以是"服务端点",也可以是"元数据资源",为了阐明这两种类型Web服务的各种期望,本规范将讨论这两个概念(或角色)不同的实体.

其他参考 -

什么是Web服务端点?

http://en.m.wikipedia.org/wiki/Web_resource http://en.m.wikipedia.org/wiki/Web_service

将资源称为端点:

http://developers.lyst.com/2015/02/20/1-to-1-relationships-and-subresources-in-rest-apis/


Jps*_*psy 77

术语资源端点通常用于同义词.但实际上它们并不意味着同样的事情.

术语端点侧重于用于发出请求的URL.
术语资源主要关注请求返回的数据集.

现在,多个不同的端点通常可以访问相同的资源. 同样的端点也可以返回不同的资源,具体取决于查询字符串.

让我们看一些例子:

访问相同资源的不同端点

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

/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3
Run Code Online (Sandbox Code Playgroud)

显然,他们都可以访问给定API中的相同资源.

此外,现有的API可以完全更改.这可能会导致新的端点使用全新的不同URL访问相同的旧资源:

/api/employees/3
/new_api/staff/3
Run Code Online (Sandbox Code Playgroud)

一个端点访问不同的资源

如果端点返回集合,则可以使用查询字符串实现搜索/过滤/排序.因此,以下URL都使用相同的端点(/api/companies),但它们可以返回不同的资源(或资源集合,根据定义,它们本身就是资源):

/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
Run Code Online (Sandbox Code Playgroud)

  • 很好地解释 (4认同)
  • 你的答案应该是公认的答案. (2认同)

Luk*_*ett 6

可能我的回答不是一个很好的选择,但这是可行的。

由于通过HTTP与真正的RESTful Web服务进行了更多的合作,我试图使人们避免使用术语终结点,因为它没有明确的定义,而是使用REST语言,即资源和资源位置。

在我看来,端点是TCP术语。它与HTTP混合使用,因为部分URL标识了侦听服务器。

因此,资源不是一个较新的术语,我认为,端点始终被盗用,并且我们意识到随着REST作为一种API 风格而逐渐流行起来

编辑

我写了关于这个的博客。

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