返回介绍

第二十三章:应用程序编程接口(API)

发布于 2025-01-02 21:54:01 字数 1306 浏览 0 评论 0 收藏 0

我为此应用程序构建的所有功能都只适用于特定类型的客户端:Web 浏览器。 但其他类型的客户端呢? 例如,如果我想构建 Android 或 iOS APP,有两种主流方法可以解决这个问题。 最简单的解决方案是构建一个简单的 APP,仅使用一个 Web 视图组件并用 Microblog 网站填充整个屏幕,但相比在设备的 Web 浏览器中打开网站,这种方案几乎没有什么卖点。 一个更好的解决方案(尽管更费力)将是构建一个本地 APP,但这个 APP 如何与仅返回 HTML 页面的服务器交互呢?

这就是应用程序编程接口(API)的能力范畴了。 API 是一组 HTTP 路由,被设计为应用程序中的低级入口点。与定义返回 HTML 以供 Web 浏览器使用的路由和视图函数不同,API 允许客户端直接使用应用程序的 资源 ,从而决定如何通过客户端完全地向用户呈现信息。 例如,Microblog 中的 API 可以向用户提供用户信息和用户动态,并且它还可以允许用户编辑现有动态,但仅限于数据级别,不会将此逻辑与 HTML 混合。

如果你研究了应用程序中当前定义的所有路由,会注意到其中的几个符合我上面使用的 API 的定义。 找到它们了吗? 我说的是返回 JSON 的几条路由,比如 第十四章 中定义的 /translate 路由。 这种路由的内容都以 JSON 格式编码,并在请求时使用 POST 方法。 此请求的响应也是 JSON 格式,服务器仅返回所请求的信息,客户端负责将此信息呈现给用户。

虽然应用程序中的 JSON 路由具有 API 的“感觉”,但它们的设计初衷是为支持在浏览器中运行的 Web 应用程序。 设想一下,如果智能手机 APP 想要使用这些路由,它将无法使用,因为这需要用户登录,而登录只能通过 HTML 表单进行。 在本章中,我将展示如何构建不依赖于 Web 浏览器的 API,并且不会假设连接到它们的客户端的类型。

本章的 GitHub 链接为: Browse , Zip , Diff .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文