路由和端点的区别?

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()区别

GCP端点和Apigee有啥区别

app.UseRouting() 和 app.UseEndPoints() 有啥区别?

查询数据库和请求端点有啥区别?

端点、套接字、接受器之间的区别

ThinkPHP5静态地址路由和动态路由的区别?