【问题标题】:What is the difference between an API and routes/endpoints?API 和路由/端点有什么区别?
【发布时间】:2020-11-06 05:09:45
【问题描述】:

我是网络世界的新手,我刚刚阅读了difference between a route and an endpoint

现在我想知道,这可能是一个愚蠢的问题,API 和路由之间的区别是什么(我知道 API 的定义)。

在我看来,当有人说“构建 API”或根据我看过的 YouTube 教程时,他们只是使用诸如 Express.js 或 Flask 之类的 Web 框架(例如 '/hello')构建一个路由,它会返回“你好”。

如果那是 API,API 和路由是否可以互换?例如,如果我有 3 条路线:'/hello'、'/users'、'/users/'。我可以说我有 3 个 API 吗?

【问题讨论】:

    标签: routes web-deployment rest


    【解决方案1】:

    简而言之:

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

    【讨论】:

    • 谢谢!那么如果我有,例如GET /{entity_type}/{entity_id}POST /{something}/{something}GET /{user}/{userId} ,是否意味着我有3个API?
    • 我会说你有一个带有 3 个端点的 API)API 类似于一组涵盖某些功能的方法。它是一个完整的应用程序,通过方法列表(端点)提供一些功能。例如,YouTube API 允许您获取视频列表、获取视频下的 cmets 列表、删除特定视频等。但所有这些操作都是由一个 API 提供的
    【解决方案2】:

    我认为您可能会混淆服务器(API)与用户(网络)

    比如你的Api是Fruits,水果的种类很多。

    localhost5000:fruits/

    为了让用户能够访问特定的水果,比如说香蕉。

    那就是

    localhost5000:水果/香蕉

    更清晰的解释可以参考 Caleb Curry 的 API Crash Course

    https://www.youtube.com/watch?v=qbLc5a9jdXo&t=2804s

    【讨论】:

      【解决方案3】:

      TL;DR

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

      长读

      Web API 世界中的 API 由 URI 或 REST 端点表示。最好通过编程类比来理解它。以 JavaAPI 规范为例,类和包中都有方法聚合。您可能将类视为 API,但实际上您调用了它的方法。

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

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

      【讨论】:

        猜你喜欢
        • 2019-01-21
        • 2023-03-07
        • 2019-09-28
        • 2013-02-05
        • 2020-02-05
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 2019-09-24
        相关资源
        最近更新 更多