我听过“资源”和“端点”都指的是同一件事。资源似乎是一个较新的术语。
他们之间有什么区别? “资源”是否意味着RESTful设计?
答案 0 :(得分:68)
我将资源描述为端点的RESTful子集。
在REST中,资源通常是指在API端点公开的某个对象或对象集。
/api/users/johnny
端点本身只是对接受可能是或可能不是REST的Web请求的uri的引用。
/services/service.asmx
以下来自w3 metadata docs的参考资料并非指一般意义上的资源,但仍然赋予两个术语如何相关的含义:
3.3术语
服务端点:使用a可寻址的Web服务 WS-Addressing端点引用。在此背景下 规范,假设消费者的主要目标是 与此服务互动。
元数据资源:可使用的可寻址的专用Web服务 WS-Addressing端点引用或URL及其主要内容 目的是公开一段元数据的XML表示 与服务端点相关联。
虽然从技术上讲,单个Web服务既可以是“服务”,也可以是“服务” 为了达到目的,端点'以及'元数据资源' 阐明这两种Web服务的各种期望, 本规范将讨论这两个概念(或角色) 不同的实体。
其他参考资料 -
What is a web service endpoint?
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/
答案 1 :(得分:56)
术语资源和端点通常用于同义词。但实际上它们并不意味着同样的事情。
术语端点主要关注用于发出请求的网址。
术语资源主要关注请求返回的数据集。
现在,相同资源通常可由多个不同端点访问。
此外,相同端点可以返回不同的资源,具体取决于查询字符串。
让我们看一些例子:
查看以下不同端点的示例:
/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3
他们显然可以访问给定API中的相同资源。
现有的API也可以完全更改。这可能会导致新的端点使用全新的不同URL访问相同的旧资源:
/api/employees/3
/new_api/staff/3
如果您的端点返回一个集合,您可以使用查询字符串实现搜索/过滤/排序。因此,以下网址都使用相同的端点(/api/companies
),但他们可以返回不同的资源(或资源集合 ,根据定义,它们本身就是资源):
/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
答案 2 :(得分:2)
根据https://apiblueprint.org/documentation/examples/13-named-endpoints.html是资源 a" general"给定实体的存储地点 - 例如/ customers / 30654 / orders,而端点是给定资源上的具体操作(HTTP方法)。因此,一个资源可以有多个端点。
答案 3 :(得分:2)
可能我的答案不是一个很好的选择,但这是可行的。
由于通过HTTP与真正的RESTful Web服务进行了更多的合作,我一直试图避免人们使用术语终结点,因为它没有明确的定义,而是使用REST语言,即资源和资源位置。 >
在我看来,端点是TCP术语。它与HTTP混淆,因为部分URL标识了侦听服务器。
因此,资源不是一个较新的术语,我不认为,端点总是被盗用,并且我们意识到随着REST成为样式的领头羊, API。
修改
我对此发表了博客。
https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819
答案 4 :(得分:0)
1。资源说明 “资源”是指API返回的信息。
2。端点和方法 端点指示您如何访问资源,而该方法指示与资源的允许的交互(例如GET,POST或DELETE)。
其他信息: 3。参数 参数是您可以随端点传递的选项(例如指定响应格式或返回的数量)以影响响应。
4。请求示例 该请求示例包括一个使用端点的示例请求,其中显示了已配置的一些参数。
5。响应示例和架构 响应示例显示了来自请求示例的示例响应;响应模式定义了响应中所有可能的元素。
来源- Reference link
答案 5 :(得分:0)