Closed
Description
API Platform version(s) affected: 2.6.0-alpha.1 with Symfony 5.2 on PHP 7.4
Description
Using Symfony Uid as identifier of a resource and executing a request on an item given an existing uuid, returns a 404 error caused by a query with binary data instead of string representation of the uuid
How to reproduce
resource example:
<?php
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\IdGenerator\UuidV4Generator;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Uid\Uuid;
/**
* @ORM\Entity()
* @ORM\Table(name="invoices")
* @ApiResource(
* normalizationContext={"groups"={"invoices"}},
* collectionOperations={"get"},
* itemOperations={"get"}
* )
*/
class Invoice
{
/**
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class=UuidV4Generator::class)
* @Groups({"invoices"})
*/
private Uuid $id;
/**
* @ORM\Column(name="number", type="string")
* @Groups({"invoices"})
*/
private string $number;
public function getId(): Uuid
{
return $this->id;
}
public function getNumber(): string
{
return $this->number;
}
}
request example:
http://localhost/invoices/b282f366-bcae-44cf-b09c-d0569b9cdf9d
query produced:
SELECT i0_.id AS id_0, i0_.number AS number_1 FROM invoices i0_ WHERE i0_.id = 0xB282F366BCAE44CFB09CD0569B9CDF9D;