w2w / apie
4.0.1
2020-09-22 12:27 UTC
Requires
- php: ^7.2
- doctrine/annotations: ^1.6
- erasys/openapi-php: ^2.1|^3.0
- jeroen/rewindable-generator: ^1.2
- laminas/laminas-diactoros: ^2.1
- pagerfanta/pagerfanta: ^2.4
- phpdocumentor/reflection-docblock: ^4.3|5.*
- psr/cache: ^1.0
- psr/container: ^1.0
- psr/http-message: ^1.0
- ramsey/uuid: ^3.8
- symfony/cache: ^4.0|^5.0
- symfony/finder: ^4.3|^5.0
- symfony/http-kernel: ^4.0|^5.0
- symfony/property-access: ^4.0|^5.0
- symfony/property-info: ^4.0|^5.0
- symfony/serializer: ^4.3|^5.0
- w2w/apie-object-access-normalizer: ^2.0|>=2.0.1
Requires (Dev)
- doctrine/cache: ^1.9
- guzzlehttp/guzzle: ^6.3
- haydenpierce/class-finder: ^0.4.0
- jangregor/phpstan-prophecy: 0.5.1
- nesbot/carbon: *
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^0.12.3
- phpstan/phpstan-phpunit: 0.12.6
- phpunit/phpunit: ^7.0.0|^8.0.0
- tightenco/collect: ^7.12
- webonyx/graphql-php: ^0.13.8
This package is auto-updated.
Last update: 2022-06-12 09:58:43 UTC
README
将简单的 POPO(Plain Old PHP Objects)、DTO(数据传输对象)和实体转换为具有 OpenAPI 规范的 REST API 的库。它仍在开发中,但有许多单元测试,并提供了一个桥梁以集成到 Laravel 中。
从 Apie 版本 3 开始,也可以添加插件以实现模块化。
文档
Apie 与 Api Platform 的比较
此库深受 Symfony Api Platform 的启发,但也有一些变化
- 此库是框架无关的,需要一个包装库才能在框架中运行。Api Platform 核心是框架无关的,但要在 symfony 框架之外设置它比较困难。
- 在 Api Platform 中,资源提供者或持久化器通过 supports() 方法确定是否可以持久化或检索特定资源。对于 Apie,资源类会明确地链接到一个服务,这使得选择哪些 HTTP 方法可用变得更加容易。
- 如果没有选择序列化组,则 API Platform 没有默认的序列化组。
- 到目前为止,APIE 在标准(JSON+LD,HAL)方面的功能较少,并且没有 GraphQL 支持。最终我们可能会添加这些功能。
- APIE 更擅长处理没有 id 的 API 资源。