趋近智
API 和 HTTP 方法是实现网络交互的基础机制。掌握这些基本概念对于开发包括 FastAPI 应用在内的网络应用程序很有帮助。
API,即应用程序编程接口,充当中间人,允许两个不同的软件应用相互通信。可以将其想象成餐厅的菜单。菜单(API)提供一份您可以点的菜品(操作)列表,以及每道菜的描述(数据格式)。您(客户端应用)根据菜单发出请求,厨房(服务器应用)准备好菜品并将其送回给您。您不需要知道确切的食谱或厨房如何运作;您只需知道如何从菜单点餐。
在网络开发和模型部署中,我们通常使用 Web API。这些 API 使用超文本传输协议(HTTP)以便 客户端(如网页浏览器、移动应用或其他后端服务)与 服务器(我们的 FastAPI 应用和机器学习 (machine learning)模型所在之处)之间进行通信。客户端向服务器发送 HTTP 请求,服务器发送回 HTTP 响应。
这种交互遵循标准的客户端-服务器模型:
使用 HTTP 进行客户端-服务器交互的简化视图。
许多 Web API,包括使用 FastAPI 构建的,遵循 REST(表述性状态转移)的原则。REST 不是一个严格的协议,而是一种架构风格,它定义了一系列约束,用于构建可伸缩、无状态且易于维护的 Web 服务。主要思想包括:
/models/iris-classifier 或 /predict。HTTP 定义了几种请求方法(常称为“动词”),它们表示希望对由 URL 标识的资源执行的动作。FastAPI 使用这些方法将传入的请求路由到您代码中正确的 Python 函数。您会遇到最常见的方法是:
GET /models/info/resnet50)。获取过去的预测结果(GET /predictions/123)。POST /predict/image)。提交数据来训练或微调 (fine-tuning)模型(尽管通常离线完成)。PUT /models/config/iris-classifier)。完全替换模型文件(通过直接 API 较不常见,但可行)。DELETE /models/version/spam-filter-v1)。删除存储的预测结果(DELETE /predictions/456)。其他方法如 PATCH(用于部分更新)、HEAD(类似于 GET 但没有响应体)和 OPTIONS(获取资源的通信选项)也存在,但与 GET 和 POST 相比,它们在基本的机器学习部署 API 中使用频率较低。
一个 HTTP 请求 通常包含:
Content-Type: application/json 表示请求体的格式,Authorization 用于凭证)。一个 HTTP 响应 通常包含:
200 OK 成功,201 Created 已创建,400 Bad Request 错误请求,404 Not Found 未找到,500 Internal Server Error 内部服务器错误)。Content-Type: application/json,Content-Length)。FastAPI 提供便捷的方式来定义端点,这些端点与特定的 URL 路径和 HTTP 方法对应。它自动处理请求数据(如 JSON 请求体)的解析和响应数据的格式化,基于您定义的 Python 类型和 Pydantic 模型,这将在下一章中介绍。了解这些基本的 HTTP 原理对于为您的机器学习模型构建高效的 Web API 很有帮助。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造