路由和端点的区别?
Posted
技术标签:
【中文标题】路由和端点的区别?【英文标题】:Difference between route and endpoint? 【发布时间】:2019-09-28 05:03:15 【问题描述】:问题:
我有一个可能相当简单的问题,但我找不到很好的解释:
在Node.js
/ Express
应用程序中开发的 RESTful API 上下文中,路由和端点之间有什么区别(如果有)(但这些概念可能更广泛?!...)?
(它在某种程度上与 URL 相关吗?)
示例:
例如在这篇文章中:https://medium.com/@purposenigeria/build-a-restful-api-with-node-js-and-express-js-d7e59c7a3dfb我们可以阅读:
我们导入了课程开始时安装的express,app.get向服务器发起get请求,第一个参数是route/endpoint,endpoint是用来返回的数据库中的所有待办事项。
这些概念可以互换使用,这让我感到困惑。 (请注意,我是 REST API、nodejs 和 express 的 100% 初学者,但我会尽力学习)。
编辑: 按时间顺序排列的前两个答案让我更加困惑,因为它们完全是对立的。
【问题讨论】:
【参考方案1】:这里有 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
。所以路由是一种定位资源的方式。
Read more: Endpoint vs. route
Read more: Endpoint vs. resource
【讨论】:
【参考方案2】:路线
用于访问可用端点的 URI 路径。 示例:http://www.mywebsite.com/
端点
执行特定操作。 有一个或多个参数。 返回数据。 示例:GET http://www.mywebsite.com/Products
Route 是 URI,Endpoint 是对 URI 执行的操作。
【讨论】:
【参考方案3】:路由和端点是相关的概念——你不能真正拥有一个而没有另一个。
什么是端点?
一般来说,“端点”是one end of a communication channel,一个系统与另一个系统交互的地方。这个词在networking中也有类似的用法。
对于典型的 Web API,端点是 URL,它们在 API 的文档中进行了描述,因此程序员知道如何使用/使用它们。例如,一个特定的 Web API 可能有这个端点:
GET https://my-api.com/Library/Books
这将返回图书馆中所有书籍的列表。
什么是路线?
“路线”通常是matches incoming request paths to resources 的代码。换句话说,它定义了 URL 以及将执行的代码。路由路径可能包含正则表达式、模式、参数并涉及验证。例如,考虑这个路由路径:
"controller/action/id?"
在 ASP.NET 中,应用了模式匹配,因此GET https://my-api.com/Library/Books/341
将调用Library
类的Books
公共方法,并传递341
的参数。路由框架可以非常灵活和通用。
端点的最简单示例是将您想要使用的文件(例如data.json
)放在您的网络服务器的public_html
文件夹中。可以通过GET https://my-api.com/data.json
联系。路由由开箱即用的 Web 服务器处理,不需要路由代码。
接下来要读的一些好东西:
Express.js - Routing Wordpress Developer Resources - Routes and Endpoints When to use "client-side routing" or "server-side routing"?【讨论】:
【参考方案4】:端点基本上用于执行特定任务并返回数据,端点是路由的一部分。
example 是路由,this 也是路由,但这里它们都返回不同的数据,所以我们可以说这里的最后两个参数是一种端点,表示 id 和 question字符串。
端点:
/56075017/difference-between-route-and-endpoint
/56040846/how-to-use-the-classweight-option-of-model-fit-in-tensorflow-js
路线:
https://***.com/questions/56075017/difference-between-route-and-endpoint
https://***.com/questions/56040846/how-to-use-the-classweight-option-of-model-fit-in-tensorflow-js
【讨论】:
【参考方案5】:在本例中: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
。删除评论并返回现在删除的评论数据。
【讨论】:
【参考方案6】:端点:端点是用于执行特定任务或功能的 URL。(例如:https://localhost:3000/route)
Route:它是 URL 端点的一部分,将页面路由到不同的组件。(例如:https://localhost:3000/thisIsRoute)
【讨论】:
以上是关于路由和端点的区别?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core中app.UseRouting()和app.UseEndpoints()区别