Skip to content

REST

Awesome REST Awesome

有关 RESTful API 架构、开发、测试和性能的优质资源的协作列表. 请随意为这个持续的列表做出贡献.

Design

Guidelines

Standards

  • JSON API - 在 JSON 中构建 API 的标准.
  • RAML - 简单简洁的方式来描述 RESTful API.
  • JSend - 简单的规范,规定了如何格式化来自 Web 服务器的 JSON 响应的一些规则.
  • OData - 开放协议允许创建和使用可查询和可互操作的 RESTful API. 相当复杂.
  • HAL - 简单的格式,为 API 中的资源之间的超链接提供一致且简单的方法.
  • JSON-LD - 用 JSON (W3C) 描述链接数据和超媒体关系的标准.
  • Hydra - 超媒体驱动的 Web API (W3C) 词汇.
  • Schema.org - 描述通用数据模型的模式集合.
  • OpenAPI - OpenAPI 规范以前称为 Swagger 规范,是世界上最流行的用于定义 Restful API 的描述格式.

Clients

PHP Clients

  • Guzzle - 用于使用 RESTful Web 服务的 HTTP 客户端和框架.
  • Buzz - 另一个轻量级 HTTP 客户端.
  • unirest for PHP - 简化、轻量级的 HTTP 客户端库.

JavaScript Clients

  • restangular - AngularJS 服务可以正确、轻松地处理 REST API.
  • restful.js - JS client for interacting with server-side RESTful resources.
  • traverson - 用于 Node.js 和浏览器的超媒体 API/HATEOAS 客户端
  • raml-client-generator - 为 js 生成静态客户端库.

Node.js Clients

Ruby Clients

  • RESTClient - 适用于 Ruby 的简单 HTTP 和 REST 客户端,受到用于指定操作的微框架语法的启发.
  • Spyke - 以类似 ActiveRecord 的方式与 REST 服务交互.
  • excon - 可用、快速、简单的 Ruby HTTP 1.1. 它作为通用 HTTP(s) 客户端效果很好,特别适合在 API 客户端中使用.
  • httparty - 让 HTTP 再次变得有趣!
  • Net::HTTP - Net::HTTP 提供了丰富的库,可用于构建 HTTP 用户代理.
  • raml-ruby-client-generator - 从 RAML 文件自动生成 API 客户端.

Go Clients

  • gopencils - 小而简单的包,可轻松使用 REST API.
  • resty - 受 Ruby Rest-client 启发的简单 HTTP 和 REST 客户端.

.NET Clients

  • RestSharp - 适用于.NET 的简单 REST 和 HTTP API 客户端
  • Refit - 适用于 Xamarin 和 .NET 的自动类型安全 REST 库
  • Flurl - 流畅、可移植、可测试的 REST/HTTP 客户端库
  • RestEase - 易于使用的类型安全 REST API 客户端库,简单且可定制. 深受改装启发
  • Tiny.RestClient - 适用于 .NET 的最简单的 Fluent REST 客户端.
  • RestLess - .Net Standard 的自动类型安全无反射 REST API 客户端库.
  • Apizr - 基于 Refit 的 Web API 客户端,但具有弹性(重试、连接、缓存、身份验证、日志、优先级等).

Generators

  • openapi-generator - OpenAPI 生成器允许在给定 OpenAPI 规范(v2、v3)的情况下自动生成 API 客户端库(SDK 生成)、服务器存根、文档和配置.

Servers

Directly On Top Of A RMDB

  • postgrest - 直接从现有 PostgreSQL 数据库提供完全 RESTful API.
  • MySQL HTTP plugin - 适用于任何 MySQL 数据库的简单 REST 式 / CRUD 服务器.
  • pREST - 来自用 Go 编写的任何现有 PostgreSQL 数据库的完全 RESTful API.

Node.js

  • node-restify - 专门用于 REST API 的框架.
  • Sails.js - Node.js Web 框架嵌入了自动生成 REST API 的命令.
  • mers - 将 Mongoose 查找器公开为 RESTful API 的 Express 服务.
  • Baucis - 基于您的 Mongoose 实体构建可扩展的 REST API.
  • flatiron/resourceful - JavaScript 的同构资源引擎.
  • loopback - 强大的 Node.js 框架,用于创建 API 并轻松连接到后端数据源.
  • Feathers - 是一个实时的微服务 Web 框架,让您可以通过 RESTful 资源、套接字和灵活的插件来控制数据.
  • Expressa - Express 中间件,用于使用简单的管理编辑器和权限模型从 JSON 模式创建 API.
  • rest-hapi - 基于支持关系数据的mongoose模型生成RESTful API.
  • Nestjsx/crud - 使用 NestJS 和 TypeORM 为 RESTful API 生成 CRUD 控制器和服务.

PHP

  • Microrest - 微型网络应用程序在任何关系数据库之上提供 REST API.
  • Drest - 用于将 Doctrine 实体公开为 REST 资源端点的库.
  • Restler - 将 PHP 方法公开为 RESTful Web API 的轻量级框架.
  • HAL - 超文本应用程序语言 (HAL) 构建器库.
  • Apigility - 使用 Zend Framework 2 构建的 API 构建器.
  • phprest - PHP 的专用 REST 微框架.
  • Hateoas - 支持实现 HATEOAS REST Web 服务表示的 PHP 库.
  • Fusio - 开源API管理平台.

Symfony2

PowerShell

  • Pode - Pode 是一个面向 PowerShell 开发人员的跨平台、开源、社区支持的 Web 服务器和 REST API 框架

Python

  • Django REST framework - 强大而灵活的工具包,可以轻松构建 Web API.
  • django-tastypie - 为 Django 应用程序创建美味的 API.
  • flask-restful - Flask 扩展增加了对快速构建 REST API 的支持.
  • flask-restless - Flask 扩展,用于为使用 SQLAlchemy(或 Flask-SQLAlchemy)定义的数据库模型生成 ReSTful API.
  • hug - 轻量级且快速的 API 框架.
  • sandman - 适用于现有数据库驱动系统的自动化 REST API.
  • restless - 基于从 TastyPie 吸取的经验教训的框架无关的 REST 框架.
  • Python Eve - Eve是一个专为人类设计的开源Python REST API框架. 它允许轻松构建和部署高度可定制、功能齐全的 RESTful Web 服务.
  • Ramses - 通过在运行时生成生产就绪的 API,使 RAML 文件可执行.
  • Flask-Potion - Flask-Potion 是一个强大的 Flask 扩展,用于构建 RESTful JSON API. 它还提供了多个客户端,以便更轻松地访问 API.
  • apistar - 一个智能 Web API 框架,专为 Python 3 设计.
  • Falcon - Falcon 是一个裸机 Python Web API 框架,用于构建高性能微服务、应用程序后端和更高级别的框架.
  • FastAPI - FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示使用 Python 3.6+ 构建 API. 使用 Swagger UI 和 ReDoc、基于 OpenAPI 和 JSON Schema 的自动 API 文档.

Ruby

  • Grape - 用于在 Ruby 中创建类似 REST 的 API 的自以为是的微框架.
  • Rails - RailsGuides:将 Rails 用于仅 API 应用程序.

Go

  • gocrud:Go 库可简化任意深度结构化数据的创建、更新和删除 — 使构建 REST 服务变得快速、轻松.
  • go-json-rest - “net/http”之上的薄层,有助于轻松构建 RESTful API.
  • sleepy - 用 Go 编写的 RESTful 微框架.
  • restit - Go 微框架帮助编写 RESTful API 集成测试.
  • go-relax - 用于构建 RESTful API 的可插入组件框架.
  • go-rest - Go 的小而邪恶的 REST 框架.
  • go-restful - 用于构建 Restful API 的声明式高度可读框架.
  • Goat - Go 中的简约 REST API 服务器.
  • Resoursea - 用于快速编写基于资源的服务的 REST 框架.

Java

  • RestExpress - 基于 Netty、高性能、轻量级、无容器、可插件扩展的框架,非常适合微服务架构.
  • Vertx-Web - Vert.x-Web 是一组用于使用 Vert.x 构建 Web 应用程序的构建块,Vert.x 是一个用于在 JVM 上构建反应式应用程序的工具包.
  • Dropwizard - 用于开发操作友好、高性能、RESTful Web 服务的框架.

Scala

  • Chaos - 用于在 Scala 中编写 REST 服务的轻量级框架.

Haskell

  • Rest for Haskell - 该包允许您在 Haskell 中创建 REST API. 这些 API 可以在不同的 Web 框架中运行. 它们还可以用于自动生成文档以及客户端库.

Testing

Querying

  • httpie - 命令行 HTTP 客户端,比“curl”对开发人员友好得多.
  • resty - 可以在管道(bash 或 zsh)中使用的小型命令行 REST 客户端.
  • jq - 命令行 JSON 处理器,与 cURL 等命令行 HTTP 客户端结合使用.
  • HttpMaster - 用于测试 REST API 和服务的 GUI 工具. 仅限 Windows 操作系统.
  • Http-console - HTTP 命令行界面,让您像本地人一样讲 HTTP
  • HTTP Prompt - HTTP Prompt 是一个交互式命令行 HTTP 客户端,具有自动完成和语法突出显示功能,基于 HTTPie 和 Prompt_toolkit 构建.
  • rest-assured - Java DSL,用于轻松测试 REST 服务.
  • Insomnia - 跨平台 HTTP 和 GraphQL 客户端
  • ExtendsClass - 使用简单的基于 Web 的 HTTP 客户端发出 HTTP 请求.
  • TestMace - 用于 API 自动化测试的跨平台简单但功能强大的 IDE.
  • Milkman - 可扩展的跨平台请求/响应工作台,不仅适用于 http 调用.
  • Schemathesis - 基于属性的测试工具,用于使用 Open API 和 GraphQL 规范构建的 Web 应用程序.
  • Step CI - API 质量保证的开源框架,根据开放 API 规范自动测试 REST、GraphQL 和 gRPC.
  • RestQA - 基于 BDD / Gherkin 的 REST API 测试框架,用于管理微服务本地测试.

Mocking

  • RequestBin - 检查和调试您的客户端或第三方 API 发送的 Webhook 请求.
  • httpbin - HTTP 请求和响应服务 - 又名 HTTP 瑞士军刀.
  • FakeRest - 修补 XMLHttpRequest 以伪造 REST API 客户端.
  • json-server - 使用快速原型设计从夹具文件提供 REST API.
  • Mocky.io - 创建虚假 HTTP 响应的免费在线服务.
  • MockServer - 轻松模拟通过 HTTP 或 HTTPS 集成的任何系统.
  • Request Baskets - 收集 HTTP 请求并通过 RESTful API 或 Web UI 检查它们的服务.
  • DuckRails - 快速、动态地模拟 API 端点.
  • Mockoon - 轻松在本地创建模拟 API. 无需远程部署,无需帐户,开源.
  • Mockintosh - 模拟服务器生成器,能够生成 RESTful API 并与消息队列通信以模仿异步任务.

Validating

  • JSON Schema - 声明性语言,允许您注释和验证 JSON 文档

Public REST APIs To Use In Tests

Documentation

  • Swagger - REST API 的文档/查询 Web 界面.
  • API doc - RESTful Web API 的内联文档.
  • raml2html - 从 RAML 文件生成 HTML 文档.
  • ReDoc - OpenAPI/Swagger 支持的三面板文档.
  • Slate - 使用 Middleman 提供美观且响应灵敏的三面板 API 文档.
  • Optic - 维护准确的 API 规范,无需编写 OpenAPI/Swagger. 适用于任何堆栈

API Gateway

  • Kong - 由 Nginx 支持的可扩展、分布式和面向插件的 API 网关.
  • Tyk API Gateway - 带有分析日志记录的轻量级 API 网关,用 Go 编写.
  • API Umbrella - 用于公开 Web 服务的 API 管理平台,具有 Web 界面和分析功能,用 Lua 编写.
  • WSO2 API Management - API 管理工具,具有轻量级网关和 API 生命周期管理,用 Java 编写.
  • Express Gateway - 构建在 ExpressJS (Node.js) 之上的微服务 API 网关.
  • KrakenD - 具有中间件的超高性能 API 网关. 用 Go 编写.
  • AWS API Gateway - 完全托管的服务,帮助开发人员创建、发布、维护、监控和保护任何规模的 API.

SaaS Tools

  • Nango - 使用 REST API 的本机集成框架(开源).
  • Runscope - 自动化 API 监控和测试.
  • Ping-API - 自动化 API 监控和测试.
  • Apiary - 协作设计、即时 API 模拟、生成文档、集成代码示例、调试和自动化测试.
  • Amazon API Gateway - Amazon API Gateway 是一项完全托管的服务,使开发人员可以轻松创建、发布、维护、监控和保护任何规模的 API.
  • Apigee - Apigee 是为企业和开发者提供 API 技术和服务的领先提供商.
  • 3scale - 基于 Nginx 的 API 网关,用于将内部和外部 API 服务与 3scale 的 API 管理平台集成.
  • Assertible - 在部署后跨环境持续测试和监控您的 API.
  • Moesif - 用于 RESTful 和 GraphQL 调试、监控和使用情况跟踪的 API 分析.
  • Beeceptor - HTTP 检查、模拟和代理服务. 提供用于创建模拟 API 端点和模拟响应的命名端点.

Miscellaneous

  • react-admin - 将 ReactJS 管理 GUI 添加到任何 RESTful API.
  • ng-admin - 将 AngularJS 管理 GUI 添加到任何 RESTful API.
  • swagger-codegen - 根据 OpenAPI 规范(以前称为 Swagger 规范)自动生成客户端库或服务器存根.
  • Lumber - 生成应用程序的管理界面.
  • Linx - 低代码API平台. 构建、调试和托管 REST API

License

Creative Commons License

本作品已获得许可 Creative Commons Attribution 4.0 International License.