hessnatur / simple-rest-crud-bundle
该包包含用于通过几个步骤构建使用 symfony 4、fos-rest-bundle、jms-serializer、lexik-form-filter-bundle 的 rest-api-interface 的抽象类和服务。
Requires
- php: ^7.1
- doctrine/doctrine-bundle: ^1.10
- friendsofsymfony/rest-bundle: ^2.4
- jms/serializer-bundle: ^2.0
- lexik/form-filter-bundle: ^5.0
- ramsey/uuid-doctrine: ^1.0
- symfony/event-dispatcher: ^4.0
- symfony/form: ^4.0
- symfony/framework-bundle: ^4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
Conflicts
- jms/serializer-bundle: ^3.0
This package is auto-updated.
Last update: 2024-09-15 21:12:38 UTC
README
HessnaturSimpleRestCRUDBundle 为 symfony 框架添加了创建基本 restful CRUD 功能的支持。
特性包括
- 可扩展的筛选器和表单来处理实体
- 可扩展的 ApiResourceModel,带有 UUID 和创建时间戳
- 抽象 CRUD-Controller 来构建端点
注意: 此包不提供认证系统,但可以提供核心 SecurityBundle 或 LexikJWTAuthenticationBundle 的用户提供者。
安装
要安装该包,请通过 composer 安装,并将主文件添加到位于配置目录中的 bundles.php。
文档
安装后,您可以创建一个实体(继承自 Hessnatur\SimpleRestCRUDBundle\Model\ApiResource),一个更新和筛选表单(继承自 Hessnatur\SimpleRestCRUDBundle\Form\ApiResourceType 和 Hessnatur\SimpleRestCRUDBundle\Filter\ApiResourceFilter)。
现在您可以创建一个简单的控制器,如下所示
// src/Controller/UserController.php
/**
* @Rest\Route("users")
*/
class UserController extends AbstractApiResourceController
{
public function getApiResourceClass(): string
{
return User::class;
}
public function getApiResourceFilterFormClass(): string
{
return UserFilterType::class;
}
public function getApiResourceFormClass(): string
{
return UserType::class;
}
}
以下端点是动态创建的
配置路径
该包自动将自路径设置到 ApiResources。如果您需要在这些路径前添加前缀,您可以在包的配置文件中配置。
hessnatur_simple_rest_crud:
settings:
api_prefix: 'api'
配置 ApiResourceManager
您可以使用自己的 ApiResourceManager。该类必须实现 Hessnatur\SimpleRestCRUDBundle\Manager\ApiResourceManagerInterface
。您可以在包的配置文件中配置您的 ApiResourceManager。
hessnatur_simple_rest_crud:
settings:
api_resource_manager: 'Hessnatur\YourCustomCodeNamespace\Manager\ApiResourceManager'
许可证
此包受 MIT 许可证的约束。有关完整的许可证信息,请参阅包中的 LICENSE。