lydic-group / rapid-api-crud
该软件使 Symfony CRUD API 开发变得快速且灵活。
0.1.12
2021-08-22 19:54 UTC
Requires
- php: >=7.4
- doctrine/orm: ^2.8
- lydic-group/filtering: ^0.1.0
- symfony/framework-bundle: ^5.2
- symfony/http-foundation: ^5.2
- symfony/http-kernel: ^5.2
- symfony/messenger: ^5.2
- symfony/property-access: ^5.2
- symfony/routing: ^5.2
- symfony/serializer: ^5.2
- symfony/string: ^5.2
- symfony/validator: ^5.2
README
该软件使快速且灵活的 Symfony API CRUD 开发成为可能。
它能做什么
- 为特定实体创建 CRUD 操作的端点(可配置)
- 通过使用类中的注解验证实体
- 例如,使用 @Groups 注解从输出中包含特定的属性(例如,从 'detail' 中排除 $id,但不在 'list' 中排除)
- 关联字段(与其他实体的关系)将被规范化为实体的 ID,反之亦然。
端点
当你扩展 RapidApiCrudController 时,这些端点将自动可用
(*) 这些端点接受一些查询参数。
(**) 这些端点适用于 ToOne 和 ToMany 关联。 best-friends 是 User 模型上的关联名称:$bestFriends。
过滤
有几种过滤实现。您可以使用 ControllerConfig 改变过滤模式。
排序
您也可以添加排序到结果中: /users?sort=age ASC
分页
您也可以添加分页查询: /users?page=1&limit=10
关联实体
为了性能原因,关联实体默认按其 ID 规范化。
如果您想包含整个实体,可以使用带有(逗号分隔)关联名称的查询参数。例如
在列表端点上: /users?include=bestFriends
在详情端点上: /users/1?include=bestFriends
在关联端点上: /users/1/best-friends?include=car
这只会深入一层。
如何使用
快速/灵活的方式
- 创建一个实体并实现 RapidApiCrudEntity(可选:使用 Symfony 验证注解)
- 创建一个扩展 RapidApiCrudController 的控制器
- 实现所需的方法,并使用配置 DTO 启用/禁用某些路由
完全可定制的的方式
- 创建或编辑现有的模型并实现 RapidApiCrudEntity 接口
- 创建或编辑现有的控制器,不要 扩展 RapidApiCrudController
- 注入 CrudService
- 创建所需的方法/路由,并使用 CrudService 中的逻辑快速启动
请随意使用 ControllerFacade 以实现特定路由功能。如果您需要更具体的逻辑,请使用 CrudService。
路线图
请查看我们这里的 看板
支持
嗨 👋 如果您喜欢我们的库。通过 购买 咖啡来支持我们!