stfalcon-studio/api-bundle
最新稳定版本:3.5.1
Composer 安装命令:
composer require stfalcon-studio/api-bundle
包简介
Base classes and helper services to build API application via Symfony.
README 文档
README
???? Base classes and helper services to build API application via Symfony.
Installation
composer req stfalcon-studio/api-bundle
Add next dependencies if you want to use JWT auth
composer req gesdinet/jwt-refresh-token-bundle
composer req lexik/jwt-authentication-bundle
Check the config/bundles.php file
By default, Symfony Flex adds this bundle to the config/bundles.php file.
In case when you ignored contrib-recipe during bundle installation it would not be added. In this case add the bundle manually.
# config/bundles.php return [ // Other bundles... StfalconStudio\ApiBundle\StfalconApiBundle::class => ['all' => true], // Other bundles... ];
Set Up Steps
Add mappings to Doctrine ORM config
doctrine: orm: mappings: StfalconApiBundle: ~
Set up a directory for JSON schemas
The default directory is ./src/Json/Schema/. Or you can change it via bundle configuration.
stfalcon_api: api_host: '%env(APP_API_HOST)%' json_schema_dir: '%kernel.project_dir%/src/Json/Schema/' jwt: enabled: true # set false to disable JWT auth redis_client_jwt_black_list: "@snc_redis.jwt_black_list"
Usage
Dictionary enums
For simple dictionary enums, you can use the DictionaryEnumInteface interface on Enums.
It will register for serialization like a dictionary, so the result will be like:
{
"id": 1,
"value": "Enum name"
}
So, now the dictionary action will look like:
#[Route(path: '/foo/bar', name: 'foo_bar', methods: [Request::METHOD_GET])] public function __invoke(): JsonResponse { // ... return new JsonResponse(data: $this->serializer->serialize(FooBar::cases()), json: true); }
In some cases, you may need to serialise dictionary value not as dictionary, for this just add in context parameter default_normalization with any value.
$this->serializer->serialize($fooBar, 'json', ['default_normalization' => true]);
Contributing
Read the CONTRIBUTING file.
统计信息
- 总下载量: 29.03k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 未知