kununu/rest-api-bundle

此包的最新版本(4.1.0)没有可用的许可证信息。

这是一个用于添加kununu特定功能的mediamonks/rest-api-bundle包装器。

此包的官方存储库似乎已消失,因此已冻结此包。

安装: 11,760

依赖: 1

建议: 0

安全: 0

星级: 1

关注者: 16

分支: 0

开放问题: 4

类型:symfony-bundle


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