Coursera 笔记

Module 01 · Python Coding Practices and Packaging Concepts

Introduction to Web Applications and APIsWeb 应用程序和 API 简介

Coursera ↗

欢迎观看本视频。观看后,您将能够:

  • 描述 Web 应用程序(或 Web App)。
  • 描述应用程序编程接口(API)。
  • 比较和对比 Web App 和 API。

Web 应用程序 (Web Apps)

Web 应用程序 (Web App) 是存储在远程服务器上并通过互联网交付的程序。用户通过浏览器与应用程序进行交互。

  • 常见示例: 电子商务网站、网络邮件等 Web 服务都是 Web App。
  • 兼容性: 虽然有些应用可能依赖于所使用的浏览器类型,但大多数 Web App 可以在所有现代网络浏览器上运行。

构成 Web App 的三大组件

Web App 需要以下三个组件来处理客户端请求:

  1. Web 服务器 (Web Server): 用于管理收到的请求。
  2. 应用服务器 (App Server): 用于执行所请求的任务。
  3. 数据库 (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 的典型例子是天气应用程序:

  1. 您的天气 App 本身不生成天气数据。
  2. 它只是向一个天气 API 请求信息。
  3. 该 API 连接了收集和存储天气数据的软件与您移动设备上的应用。
  4. 您的设备随后向您提供详细的次日天气预报。

常见的 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 那样需要网络。