我有一个可能相当简单的问题,但我无法找到带有很好解释的答案:
在 Node.js
/ Express
应用程序中开发的 RESTful API 上下文中,
route和
endpoint之间有什么区别(如果有)(但这些概念可能更广泛?!)?
例如,在这篇文章中:https://medium.com/@ Purposenigeria/build-a-restful-api-with-node-js-and-express-js-d7e59c7a3dfb我们可以阅读:
我们导入了课程开始时安装的express,app.get 向服务器发出一个 get 请求,其中第一个参数是 route/endpoint,该端点用于返回数据库中的所有待办事项。
这些概念可以互换使用,这让我很困惑。
(请注意,我是 REST API、Nodejs 和 Express 的 100% 初学者,但我会尽力学习)。
按时间顺序来说,前两个答案让我更加困惑,因为它们完全对立。
这里有 3 个不同的概念:
{id: 42, type: employee, company: 5}
localhost:8080/employees/42
GET localhost:8080/employees/42
同一条路线可以有不同的端点,例如
DELETE localhost:8080/employees/42
。所以端点基本上就是动作。
您还可以通过不同的路线访问相同的资源,例如
localhost:8080/companies/5/employees/42
。所以路线是定位资源的一种方式。
路由和端点是相关的概念 - 缺一不可。
一般来说,“端点”是“通信通道的一端”,一个系统与另一个系统进行交互。该术语在networking中也有类似的使用。 对于典型的 Web API,端点是 URL,它们在 API 文档中进行了描述,以便程序员知道如何使用/使用它们。例如,特定的 Web API 可能具有此端点:
GET https://my-api.com/Library/Books
这将返回图书馆中所有书籍的列表。
什么是路线?
的代码。换句话说,它定义了 URL 以及将执行的代码。路由路径可能包含正则表达式、模式、参数,并涉及验证。例如,考虑以下路线:
"{controller}/{action}/{id?}"
在 ASP.NET 中,应用了模式匹配,因此
GET https://my-api.com/Library/Books/341
将调用
Books
类上的 Library
公共方法,并传递参数 341
。路由框架可以非常灵活和通用。端点最简单的示例是将您想要使用的文件(例如
data.json
)放入 Web 服务器的
public_html
文件夹中。可以通过GET https://my-api.com/data.json
到达。路由由开箱即用的 Web 服务器处理,不需要路由代码。 接下来要读的一些好东西:
http://www.mywebsite.com/
GET http://www.mywebsite.com/Products
是 URI,Endpoint 是对 URI 执行的操作。
对于
example是路线,this 也是路线,但这里它们返回的数据不同,所以我们可以说这里的最后两个参数是终点,意味着 id 和问题字符串。 端点:
/56075017/difference-between-route-and-endpoint
/56040846/how-to-use-the-classweight-option-of-model-fit-in-tensorflow-js
路线:
https://stackoverflow.com/questions/56075017/difference-between-route-and-endpoint
https://stackoverflow.com/questions/56040846/how-to-use-the-classweight-option-of-model-fit-in-tensorflow-js
http://example.com/my-website/comments/123
my-website/comments/123
端点:(带有操作的 URL 的奇特词)
GET http://example.com/my-website/comments/123
DELETE http://example.com/my-website/comments/123
endpoints:客户端可以发送请求的外部地址
routes:内部服务器配置,定义如何处理对特定 URL 模式或 HTTP 方法的请求 换句话说,端点是客户端与之交互的内容,而路由是服务器如何组织和响应这些交互的方式