Coursera 笔记

Module 03 · Packages, APIs, Data Sets, and Models

Application Programming Interfaces (APIs)应用编程接口

Coursera ↗

欢迎观看“应用编程接口,简称 API”视频。看完本视频后,您将能够:

  • 定义 API
  • 列出 API 库
  • 定义 REST API 及其与 请求 (Request) 和 响应 (Response) 的关系

什么是 API? (What is an API?)

应用编程接口 (Application Programming Interface, API) 允许两个软件组件之间进行通信。

💬 例如:在程序中,您有一些数据和其他软件组件。您可以使用 API 通过 输入 和 输出 进行通信,而无需了解后台 (back end) 发生了什么。

  • API 仅指 接口 (interface)。
  • 它是您所看到 库 (library) 的一部分,而该库包含所有程序组件。

API 在库中的运作

为了进一步理解 API 在库中的工作方式,我们以 Pandas 库 为例:

  1. Pandas 是一组软件组件,并非所有组件都用 Python 编写。
  2. 在您的程序中,有一些数据和一组软件组件。
  3. 您可以使用 Pandas API 通过与这些软件组件通信来处理数据。

跨语言的 API 接口

后台的软件组件可以保持不变,但可以针对不同的语言提供 API 接口。

  • 示例:TensorFlow
    • 后台 (Back End): TensorFlow,它使用 C++ 编写。
    • 接口 (APIs): 可以使用适用于其他语言的 API,例如:Python、JavaScript、C++、Java 和 Go。
    • 结论: 因此,API 仅仅是接口。
  • 其他由志愿者开发的 TensorFlow API 包括:Julia、MATLAB、R、Scala 等。

REST API 简介

REST API 是另一种流行的 API 类型。

  • R.E.S.T. 的含义:
    • R.E. (Representational): 表述性
    • S. (State): 状态
    • T. (Transfer): 传输
  • 功能: 它们允许您通过 互联网 进行通信,并利用各种资源,如:存储、数据、人工智能算法 等。

客户端、资源与通信

在 REST API 中,您的程序是 客户端 (Client)。API 与 Web 服务 (Web service) 通信,您可以通过互联网调用该服务。通信、输入 (请求) 和输出 (响应) 都有相关规则。

术语 (Term) 定义 (Definition)
客户端 (Client) 您或您的代码。
资源 (Resource) Web 服务。
端点 (Endpoint) 客户端通过它找到服务。
请求 (Request) 客户端发送给资源的指令。
响应 (Response) 资源返回给客户端的信息。

通过 HTTP 进行数据传输

数据通过互联网使用 HTTP 方法 (HTTP methods) 传输。

  1. 请求 (Request):
    • REST API 从客户端发送的请求中获取所有信息。
    • 请求使用包含 JSON 文件 的 HTTP 消息 发送。
    • JSON 文件包含 Web 服务要执行的操作指令。
    • 此操作通过互联网传输给 Web 服务,服务执行该操作。
  2. 响应 (Response):
    • Web 服务类似地通过 HTTP 消息 返回响应。
    • 信息使用 JSON 文件 返回。
    • 此信息传输回客户端。

REST API 示例

1. 语音转文本 API (Watson Speech-to-Text API)

  • API 调用: 您将发送音频文件的副本给 API。
    • 操作: 这称为 POST 请求 (Post Request)。
  • API 响应: API 将发送该人所说话语的文本转录。
    • 后台操作: 在后台,API 正在发出 GET 请求 (GET Request)。

2. 语言翻译 API (Watson Language Translator API)

  • API 调用: 您将需要翻译的文本发送到 Watson Language Translator API。
  • API 响应: API 将翻译文本并将翻译结果发送回给您。
    • 示例: 在此案例中,API 将英语翻译成西班牙语。

总结回顾 (Summary)

在本视频中,您学到:

  • 应用编程接口 (API) 允许两个软件组件之间进行通信。
  • API 是您所看到的 库 的一部分,而该库包含程序的所有组件。
  • REST API 允许您通过互联网进行通信,并利用存储、数据、人工智能算法等资源。