symfony - Api平台中的URL错误

标签 symfony api-platform.com

我已将 ApiPlatform 添加到我的 Symfony 项目中。我已经设置了一个自定义提供程序,因为数据位于外部 Web 服务中。

这是我的实体:

<?php

namespace App\Entity;

use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\Post;
use App\State\CustomerProcessor;
use App\State\CustomerProvider;

#[ApiResource]
#[Post(processor: CustomerProcessor::class)]
#[Get(provider: CustomerProvider::class)]
class Customer
{
    #[Id]
    public string $customerId;

}

这是我在提供程序中的 provide() 方法:

    public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
    {
        // create a Customer object to return
        return new Customer();
    }

我缺少/api/customers/{id} 的路由定义,而且路由/api/customers 设置为返回单个资源。

enter image description here

这是为什么?

最佳答案

要将/customers 视为集合的端点,请装饰实体类:

#[ApiResource(
    operations: [
        new Get(provider: CustomerProvider::class),
        new GetCollection(provider: CustomerProvider::class)
    ]
)]
class Customer
{
 ...
}

要解决单个资源路径的问题,请将此装饰添加到标识符中:

#[ApiProperty(identifier: true)]

然后清除缓存!

关于symfony - Api平台中的URL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76851747/

相关文章:

symfony - 如何使用查询生成器仅获取某些字段

symfony - 在注册表单中添加一个新字段,但它不起作用[fosuserbundle]

php - 从未检查过的自定义约束

api-platform.com - "Parent"属性没有出现在 "Example Value"与 denormalizationContext 组

php - 404 资源未找到 api-platform

symfony - 如何使用 API 平台对上传的 GraphQL 文件进行单元测试?

php - 我怎样才能回到 Twig 上的前一页?

api-platform.com - api平台自定义查询参数

postgresql - 每次迁移时改变 uuid 列的学说

mongodb - Doctrine EventListener onFlush 访问旧文档