title: API 的创建 category: page slug: api-creation sortorder: 0603 toc: False sidebartitle: API 的创建 meta: Web API 使得机器间的交互成为可能。到 Full Stack Python 上学习更多关于创建 Web API 的知识。 authors: haiiiiiyun.github.io updated: 2016-07-28 21:30—2016-08-18 22:49

API 的创建

创建和分布 API 能使你的 Web 应用可以通过机器间的通信与其它应用进行交互。

API 创建的相关框架

  • Django REST 框架Tastypie 是 Django 中两个最常用的 API 框架。 当前 Django REST 框架的功能由乱轰轰的社区情绪决定。由于 Tom Christie 在 Kickstarter 上成功地募集到了资金,Django REST 框架在 3.0 版本后 还将有大的改进。

  • Flask-RESTful 是 Flask 中常用于创建 Web API 的框架。它最先由 Twilio 开源,并在一篇博客中进行了讲解,然后又移交给了 它自己的 GitHub 组织,从而使得公司外部的工程师也可以成为核心贡献者。

  • Flask API 是另一个能从 Flask Web 应用中导出 API 的通用库。

  • Sandman 是一款广泛使用的工具,它能从旧数据中自动生成 RESTful API 服务,无需编写一行代码(虽然它很容易通过代码扩展)。

  • Cornice 是 Pyramid 中的一个 REST 框架。

  • Restless 是一个轻量级的 API 框架,意在不关联任何框架。其基本理念是:只需很少的移植量,就能将相同的 API 代码用于 Django、 Flask、 Bottle、 Pyramid 或任何其它 WSGI 框架。

  • Eve 是一个用 Flask、MongoDB 和 Redis 构建的 Python REST 框架。该框架的主要作者 Nicola IarocciEuroPython 2014 作了一次精彩的演讲,并对该框架的主要功能特性进行了介绍。

  • Falcon 是一个快速的轻量级框架,非常适合用于创建 RESTful API。

  • Hug 基于 Falcon 和 Python3,它的目标是使开发 Python 驱动的 API 尽可能简单。它借助 Python3 的函数注释功能对进入和输出的 API 参数进行自动的验证和转换。

  • Pycnic 是一个以 REST 思想设计的纯 JSON-API 框架。

API 测试框架

创建、运行和维护 API 与创建、运行和维护一个 Web 应用需要花费相同的精力。API 测试框架等同于 Web 应用中的浏览器测试框架。

  • zato-apitest 能调用 HTTP API, 并提供能通过其它测试框架运行的回调挂勾。

托管的 API 测试服务

  • Runscope 是一款 API 测试 SaaS 应用,它对你自己的 API 和你的应用所依赖的外部 API 都能测试。

  • API Science 专注于尝试 API 测试,包括多步 API 调用和外部 API 监测。

  • SmartBear 中有几款 API 监测和测试工具。

API 创建相关资源

  • 这份 API 设计指南 是 Heroku 为其平台的 API 所写的最佳实践。

针对 Python 的 API 创建相关资源

Django REST 框架相关资源

API 创建的学习清单

  1. 选择一款适合用于你的 Web 应用的 API 框架。Django 项目我推荐 Django REST 框架,Flask 项目我推荐 Flask-RESTful。

  2. 首先为 API 构想出一个简单的使用案例。通常该使用案例要么是关于用户所需的机器可读格式的数据,要么是针对像 iOS 或 Android 移动应用等其它客户端的后端。

  3. 通过 OAuth 或者一个令牌方案添加一个认证机制。

  4. 为 API 增加使用限制,如何数据使用量会引起性能问题的话。还要加入基本的度量功能,从而能检测 API 的访问频度及其是否运行正常。

  5. 提供丰富的文档及关于该 API 如何访问和使用的示例。

  6. 想出其它的使用案例,并基于你从开始时的 API 使用案例中学到的知识进行扩展。