kununu / rest-api-bundle
这是一个用于添加kununu特定功能的mediamonks/rest-api-bundle包装器。
此包的官方存储库似乎已消失,因此已冻结此包。
Requires
- php: ^7.2
- ext-curl: *
- ext-json: *
- mediamonks/rest-api-bundle: ^3.0
- psr/log: ^1.0
- symfony/config: ^4.0
- symfony/console: ^4.0
- symfony/dependency-injection: ^4.0
- symfony/expression-language: ^4.0
- symfony/http-kernel: ^4.0
- symfony/security-bundle: ^4.0
Requires (Dev)
- jms/serializer-bundle: ~2.4
- matthiasnoback/symfony-dependency-injection-test: ~4.0
- mockery/mockery: ~1.2
- phpunit/phpunit: ^8.0
- symfony/browser-kit: ~4.0
- symfony/phpunit-bridge: ^4.0
- symfony/validator: ^4.0
- symfony/var-dumper: ~4.0
Suggests
- jms/serializer: Use JMS Serializer as a serializer
Conflicts
- dev-master
- 4.1.0
- 4.0.0
- 3.0.0
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.0.2
- 1.0.0
- dev-dependabot/composer/jms/serializer-bundle-approx-3.8
- dev-dependabot/composer/symfony/phpunit-bridge-tw-5.2
- dev-dependabot/composer/mediamonks/rest-api-bundle-tw-4.0
- dev-symfony4
- dev-update-jms-serializer
- dev-change-aws-trusted-proxies-subscriber-priority
This package is not auto-updated.
Last update: 2021-02-24 18:18:34 UTC
README
这是一个用于支持自定义Kununu要求的 mediamonks/rest-api-bundle 包装器。
配置
有关所有配置选项,请参阅原始包。
注意
由于这是一个MediaMonks Rest API Bundle的包装器,配置名称保持不变:mediamonks_rest_api
安装
步骤 1:将自定义私有存储库添加到composer.json
... "repositories": [ { "type": "vcs", "url": "https://github.com/kununu/symfony-rest-api-bundle.git", "no-api": true }, ],
步骤 2:安装包
打开命令行,进入您的项目目录并执行
$ composer require kununu/rest-api-bundle:^4.0
不使用Symfony Flex的应用程序
步骤 2.1:启用包
// app/ApisKernel.php class ApiKernel extends Kernel { public function registerBundles() { $bundles = [ // ... new Kununu\RestApiBundle\KununuRestApiBundle(), ]; } }
步骤 3:配置
# config/config.yml ... # MediaMonks Rest API bundle mediamonks_rest_api: serializer: JMS request_matcher: whitelist: [~^/~]
重要提示!
由于这是一个Kununu Monolog Bundle的包装器,因此必须配置应用程序名称以进行配置
# config/config.yml ... kununu_monolog: processors: application: APPLICATION_NAME
AWS 受信任的代理请求监听器
为了在AWS环境中云Front后面的服务上正确获取客户端IP地址,已添加AwsTrustedProxiesRequestListener.php。默认情况下,监听器是禁用的,必须在配置中启用
重要提示!
如果您从另一个服务请求服务,例如BFF,则需要将CLOUDFRONT和AMAZON都设置在aws_service_list: ['CLOUDFRONT', 'AMAZON']
# config/config.yml # MediaMonks Rest API bundle mediamonks_rest_api: aws_trusted_proxies: enabled: true cache_key: 'aws_trusted_proxies_ip_ranges' # Not required cache_ttl: 43200 # Not required aws_services_list: ['CLOUDFRONT', 'AMAZON'] # Not required
AWS 受信任的代理 - 导入命令
为了提高AWS受信任的代理功能的性能,有一个命令可以在容器启动期间检索受信任的代理并将其保存到应用程序缓存中。您只需将命令添加到您的bin/run_startup.sh
# bin/run_startup.sh cd $(dirname $PWD/$0) php console kununu:import-aws-trusted-proxies
JMS Serializer Context Response
添加了对JMS Serializer SerializationContext的支持,以启用使用JMS Serializer提供的序列化组和版本的功能。
使用很简单,需要使用新的ContextJsonResponse
// ApiBundle\Controller\IndexController.php namespace ApiBundle\Controller; use ApiBundle\ExampleEntity; use JMS\Serializer\SerializationContext; use JMS\Serializer\SerializerInterface; use Kununu\RestApiBundle\Response\ContextJsonResponse; class IndexController { public function IndexAction() { $data = [ 'entity' => new ExampleEntity(), ]; return new ContextJsonResponse($data, SerializationContext::create()->setGroups(['Default', 'group1', 'group2'])); } }
Kununu 兼容性响应模型
如果服务需要使用我们的兼容性响应模型,您可以使用包含在此包中的 KununuLegacyResponseModel。
# config/config.yml # MediaMonks Rest API bundle mediamonks_rest_api: response_model: kununu_legacy
自定义响应模型
您还可以通过实现 MediaMonks\RestApi\Model\ResponseModelInterface 来使用自定义的 ResponseModel。
// ApiBundle\Model\CustomResponseModel namespace ApiBundle\Model; use MediaMonks\RestApi\Model\ResponseModelInterface; class CustomResponseModel implements ResponseModelInterface { // your code }
配置
首先,将响应模型注册为服务
# config/services.yml ... services: app.kununu_response_model: class: ApiBundleModel\Model\ResponseModelClass
现在,在包配置中使用该服务作为选项
# config/config.yml # MediaMonks Rest API bundle mediamonks_rest_api: response_model: app.kununu_response_model