有人可以帮忙解决
API Platform UI
吗?在文档中,我无法找到定义服务器的方法:
我希望服务器端点输出显示是否在 localhost、dev 或 prod 上。
我在 Symfony 中使用它。
我不确定这是否与routes文件夹中的api_platform.yaml文件中的配置有关:
api_platform:
resource: .
type: api_platform
prefix: /
我想配置服务器路径,例如:
{domain/API_ROUTE}
,其中API_ROUTE
定义为.env
变量。
您需要覆盖/装饰
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);
}
}
上面的示例代码应该提供您需要的内容并定义服务器。