API 平台 - UI 服务器端点定义

问题描述 投票:0回答:1

有人可以帮忙解决

API Platform UI
吗?在文档中,我无法找到定义服务器的方法:

我希望服务器端点输出显示是否在 localhostdevprod 上。

有人可以帮忙解决这个问题吗:

我在 Symfony 中使用它。

我不确定这是否与routes文件夹中的api_platform.yaml文件中的配置有关:

api_platform:
  resource: .
  type: api_platform
  prefix: /

我想配置服务器路径,例如:

{domain/API_ROUTE}
,其中
API_ROUTE
定义为
.env
变量。

php api symfony api-platform.com
1个回答
0
投票

您需要覆盖/装饰

OpenApiFactory
。原因和方法可以在 SymfonyCast 中找到详细信息。

一个工作示例,在您的项目中创建一个文件

src/ApiPlatform/OpenApiFactoryDecorator
,其中包含以下内容:

<?php

namespace App\ApiPlatform;

use ApiPlatform\OpenApi\Factory\OpenApiFactoryInterface;
use ApiPlatform\OpenApi\Model\Server;
use ApiPlatform\OpenApi\OpenApi;
use Symfony\Component\DependencyInjection\Attribute\AsDecorator;

#[AsDecorator('api_platform.openapi.factory')]
class OpenApiFactoryDecorator implements OpenApiFactoryInterface
{
    public function __construct(private OpenApiFactoryInterface $decorated)
    {
    }
    public function __invoke(array $context = []): OpenApi
    {
        $openApi = $this->decorated->__invoke($context);

        $servers = [];
        $servers[] = new Server("https://dev.example.com/v2", "Development");
        $servers[] = new Server("https://prod.example.com/v2", "Production");

        return $openApi->withServers($servers);
    }
}

上面的示例代码应该提供您需要的内容并定义服务器。

© www.soinside.com 2019 - 2024. All rights reserved.