w2w/apie

此包已被废弃且不再维护。作者建议使用 apie/apie-lib 包。

apie 是一个库,可以将普通的 PHP 对象转换为具有 OpenAPI 规范的 REST API。

4.0.1 2020-09-22 12:27 UTC

README

CircleCI codecov Travis Scrutinizer Code Quality

将简单的 POPO(Plain Old PHP Objects)、DTO(数据传输对象)和实体转换为具有 OpenAPI 规范的 REST API 的库。它仍在开发中,但有许多单元测试,并提供了一个桥梁以集成到 Laravel 中。

从 Apie 版本 3 开始,也可以添加插件以实现模块化。

文档

  1. 安装
  2. 映射是如何工作的
  3. PSR 控制器/路由
  4. 搜索过滤器
  5. Apie 插件
  6. 版本控制
  7. 资源子操作

Apie 与 Api Platform 的比较

此库深受 Symfony Api Platform 的启发,但也有一些变化

  • 此库是框架无关的,需要一个包装库才能在框架中运行。Api Platform 核心是框架无关的,但要在 symfony 框架之外设置它比较困难。
  • 在 Api Platform 中,资源提供者或持久化器通过 supports() 方法确定是否可以持久化或检索特定资源。对于 Apie,资源类会明确地链接到一个服务,这使得选择哪些 HTTP 方法可用变得更加容易。
  • 如果没有选择序列化组,则 API Platform 没有默认的序列化组。
  • 到目前为止,APIE 在标准(JSON+LD,HAL)方面的功能较少,并且没有 GraphQL 支持。最终我们可能会添加这些功能。
  • APIE 更擅长处理没有 id 的 API 资源。