Module 01 · Python Coding Practices and Packaging Concepts
Introduction to Web Applications and APIsWeb 应用程序和 API 简介
欢迎观看本视频。观看后,您将能够:
- 描述 Web 应用程序(或 Web App)。
- 描述应用程序编程接口(API)。
- 比较和对比 Web App 和 API。
Web 应用程序 (Web Apps)
Web 应用程序 (Web App) 是存储在远程服务器上并通过互联网交付的程序。用户通过浏览器与应用程序进行交互。
- 常见示例: 电子商务网站、网络邮件等 Web 服务都是 Web App。
- 兼容性: 虽然有些应用可能依赖于所使用的浏览器类型,但大多数 Web App 可以在所有现代网络浏览器上运行。
构成 Web App 的三大组件
Web App 需要以下三个组件来处理客户端请求:
- Web 服务器 (Web Server): 用于管理收到的请求。
- 应用服务器 (App Server): 用于执行所请求的任务。
- 数据库 (Database): 用于存储完成任务所需的信息。
编码与技术栈
在编程 Web App 时,您需要编写:
- 用户端 (User End) 或前端 (Front-end) 代码,通常使用 JavaScript、HTML 或 CSS。
- 服务器端 (Server-end) 或后端 (Back-end) 代码,通常使用 Python、Java 或 Ruby。
Web App 的优势
与严格在用户本地系统上运行的应用程序相比,使用 Web App 具有多项优势:
- 多用户访问: 开发人员可以同时向多个用户提供同一版本的应用程序。
- 平台灵活性: 用户可以在他们选择的平台(例如台式机、笔记本电脑或移动设备)上使用应用程序。
- 浏览器选择: 用户可以通过他们选择的浏览器访问应用程序。
- 无需安装: 用户无需在本地系统上安装应用程序。
应用程序编程接口 (API)
API (Application Programming Interface) 是一种软件组件,它使两个彼此不连接的应用程序能够进行通信。
- 目的: API 为程序员创造了更大的灵活性,使他们能够从原本封闭的应用程序中请求数据。
- 工作原理: API 制定了标准化的规则和函数,这些规则和函数决定了可以在应用程序中获取或修改哪些数据,以及这个过程如何发生。
生活示例: 您的手机上的应用程序需要您授予权限才能访问手机的不同功能,如位置、相机或录音机。
API 示例:天气 App
一个使用 API 的典型例子是天气应用程序:
- 您的天气 App 本身不生成天气数据。
- 它只是向一个天气 API 请求信息。
- 该 API 连接了收集和存储天气数据的软件与您移动设备上的应用。
- 您的设备随后向您提供详细的次日天气预报。
常见的 API 架构
软件开发人员遵循多种架构来创建 API,其中最流行的是:
- Representational State Transfer (REST)
- Simple Object Access Protocol (SOAP)
注:这些架构将在另一视频中讨论。
API 的益处
API 带来许多益处,包括:
- 提高了应用程序之间的连接性。
- 支持传统的 CRUD (Create, Read, Update, Delete) 操作。
- 与 HTTP 动词(包括 PUT、POST、DELETE 和 GET)协同工作。
- 基于 HTTP,使其具有可定制性。
Web App 与 API 的比较与区别
API 是一个更通用的术语,指所有在系统任何两个部分之间创建链接的应用程序形式。
Web App 是一种 API 的形式,它在前端和后端之间进行通信。
区分示例:电子商务服务
让我们以一个电子商务购物服务为例来阐明 Web App 和 API 的区别:
| 访问方式 | 扮演 API 的组件 | 运作流程 |
|---|---|---|
| 通过浏览器访问 | 浏览器 | 浏览器充当 API,将您连接到 Web App。当您选择产品时,Web App 检查可用性并显示价格。 |
| 通过移动设备 App 访问 | 移动设备上的 App | 设备中的 App 充当 API,连接到电子商务购物服务。 |
核心结论
- 所有 Web App 的本质都是与其他 App 共享数据;因此,所有 Web App 都可以被视为 API。
- 然而,API 是一个通用术语,它既包括“在线”或基于 Web 的应用程序,也包括**“离线”应用程序**。
- 总结: 所有的 Web App 都是 API,但并非所有的 API 都是 Web App。
| 特征 | Web App | API |
|---|---|---|
| 定义 | 通过互联网交付,用户通过浏览器交互的程序。 | 使两个不连接的应用能够通信的软件组件。 |
| 网络要求 | 必须依赖网络(Web-based)。 | 不一定需要网络(包括在线和离线应用)。 |
| 关系 | 是 API 的一种特定形式。 | 是通用术语,包含 Web App。 |
总结要点
- Web App 是存储在远程服务器上,通过浏览器在互联网上交付的程序。
- Web App 可以在不同平台和浏览器上运行,无需安装新软件。
- API 是一种软件组件,使两个不连接的应用程序能够通信。
- Web App 是 API,但并非所有的 API 都是 Web App。
- 两者都可以在应用程序之间共享数据,但并非所有 API 都像 Web App 那样需要网络。