API 和路由/端点有什么区别?

问题描述 投票:0回答:4

我是网络世界的新手,我刚刚读到了路由和端点之间的区别

我知道 API 的定义。但 API 和路由(端点)之间有什么区别?

在我看来,当有人说“构建一个 API”或根据我看过的 YouTube 教程时,他们只是使用 Express.js 等 Web 框架或像

'/hello'
这样的 Flask 构建一条路由,它会返回
"hello"

如果这是一个 API,API 和路由可以互换吗?例如,如果我有 3 条路线:

'/hello'
'/users'
'/users/<userId>'
。我可以说我有 3 个 API 吗?

routes web-deployment rest
4个回答
9
投票

简而言之,我的想法是:

  • API 是关于使用 JSON 或 XML(通常)进行输入/输出数据(没有任何 UI 的 CRUD 操作)的数据处理。 API应该遵循一些规则和结构。例如:
    GET /{entity_type}/{entity_id}
    表示此方法将尝试获取具有传递的类型和 id 的实体
  • endpoint 可能是一个 API(它们通常像“API 端点”一样拼写在一起),但同时它也可能只是一个 URL,无需对任何数据进行显式操作,例如触发器/webhook/网关等.
  • route 是指向某个网站/页面/控制器的路径,具有有意义的名称以与用户交互。路由接收一些用户输入(处理用户操作)并以方便的方式表示一些结果(例如,渲染标记)。

4
投票

TL;博士

API、端点和路由可以互换,但存在细微差别。

长读

Web API 世界中的 API 由 URI 或 REST 端点表示。最好从编程类比来理解它。以 Java API 规范为例,方法聚集在类和包中。您可能认为类是 API,但实际上您调用了它的方法。

同样,“/users”也可以称为“users”API。这也是一个终点。您需要阅读其规范以了解其用法。该 API 可以有更多相关的 REST 端点。例如 - “/users/{id}”或“/users/admin/”。所有这些都有自己的规范。总的来说,它成为一个 API 文档的一部分。

API通常是一个定义术语,Endpoint或route是物理表示。当有人说“构建一个 API”时,这意味着你必须定义它的规范,例如协议、请求/响应模式、(可能是)安全凭证和(当然)要命中的端点。


0
投票

API 是应用程序的一部分,可由应用程序外部的代理直接访问。但你的应用程序是什么?

应用程序 (app) 可以使用任何可以想象的标准细分为任意数量的子部分,并且每个子部分本身都可以被视为一个应用程序。

例如,我可能会认为我的应用程序是在服务器上运行的程序和在他的计算机上运行的用户界面程序的组合,并且两者之间的互联网通信也是我的应用程序的一部分。此类应用程序的 API 是人类或机器人使用的客户端界面。

或者,我可以说我有 2 个独立的应用程序,一个是服务器应用程序,一个是客户端应用程序,并且互联网通信不属于其中任何一个。除了客户端 API 之外,现在我还有服务器 API 来接收来自客户端的请求。

那么我可以说我的服务器实际上由 4 个应用程序组成,每个应用程序处理不同的子服务。他们每个人都会有一个 API 来相互通信。

最终,我什至可以将每个单独的功能视为一个单独的应用程序。函数的 API 是指它的调用方式(其名称和参数,采用正确的格式)。您也可以考虑返回格式(或不考虑)。

在您的示例中,您提到了 3 条路线。如果您将他们针对的每项服务视为一个单独的应用程序,那么是的,您有 3 个 API。如果您将其视为一个整体,那么您就有 1 个 API。这完全取决于您所认为的 API 所指的“应用程序”。


0
投票

API(应用程序编程接口),是使2个应用程序可以相互通信的桥梁/方式。

例如:https://api.stackoverflow.com

API 端点是 2 个应用程序可以相互请求和响应资源的桥梁/方式。

例如:https://api.stackoverflow.com/v2/user_detail

  • 您将用户 ID 发送到服务器,然后从服务器检索用户信息详细信息。

再举个例子,API是一座从一侧连接到另一侧的桥梁,而API EndPoint是一座汽车/摩托车可以从一侧穿过到另一侧的桥梁。

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.