URI субресурса с настраиваемым идентификатором - PullRequest
1 голос
/ 27 мая 2020

У меня есть сущность с Пользовательским идентификатором и Подресурсом .

Хотя сущность Организация работает нормально (/api/organisation/ABC), поэтому ожидается иметь конечную точку, например /api/organisation/ABC/users.

Но нет. URI подресурсов /api/organisation/1/users. Это результат:

{
  "@context": "/api/contexts/Organisation",
  "@id": "/api/organisations/1/users", <-- $id used as identifier
  "@type": "hydra:Collection",
  "hydra:member": [
    {
      "@id": "/api/users/1",
      "@type": "User",
      "organisation": {
        "@id": "/api/organisations/ABC",  <-- $code used as identifier
        "@type": "Organisation",
        "id": 701,
        "code": "VB",
        "createdAt": "2019-11-08T08:38:18+01:00",
        "updatedAt": "2019-11-08T08:38:52+01:00"
      },
    }
  ]
}

Я использую api-platform/api-pack v1.2.2 и api-platform/core v2.5.5. Такое поведение не задокументировано .

use ApiPlatform\Core\Annotation as Api;

class Organisation
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     *
     * @Api\ApiProperty(identifier=false)
     */
    protected ?int $id = null;

    /**
     * @ORM\Column(type="text", nullable=true)
     *
     * @Api\ApiProperty(identifier=true, description="Code")
     */
    protected ?string $code = null;

    /**
     * @var Collection|User[]
     *
     * @ORM\OneToMany(targetEntity="User", mappedBy="organisation")
     *
     * @Api\ApiSubresource(maxDepth=1)
     */
    protected $users;
}

Почему мой пользовательский идентификатор не работает с субресурсами?

1 Ответ

1 голос
/ 07 июня 2020

Хотя мне это казалось маловероятным, но оказалось, что это ошибка:

...