Allow JSON media type + POST for Building (WIP)

This commit is contained in:
Nicolò P 2024-12-16 17:56:51 +01:00
parent 32ad965139
commit 09ebe7dded
3 changed files with 12 additions and 2 deletions

View File

@ -2,6 +2,11 @@ api_platform:
title: Architetture Roma - API
version: beta
show_webby: false
formats:
json:
mime_types: ['application/json']
jsonld:
mime_types: ['application/ld+json']
defaults:
stateless: true
cache_headers:

View File

@ -4,6 +4,7 @@ namespace App\Entity;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\Post;
use ApiPlatform\Metadata\GetCollection;
use App\Repository\BuildingRepository;
use Doctrine\ORM\Mapping as ORM;
@ -14,7 +15,9 @@ use Symfony\Component\Serializer\Attribute\Groups;
#[ApiResource(
operations: [
new Get(normalizationContext: ['groups' => 'building:item']),
new GetCollection(normalizationContext: ['groups' => 'building:list'])
new GetCollection(normalizationContext: ['groups' => 'building:list']),
// TODO Security!!
new Post(),
],
order: ['name' => 'DESC'],
paginationEnabled: false,

View File

@ -3,6 +3,7 @@
namespace App\Entity;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\ApiProperty;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use App\Repository\ElementRepository;
@ -42,8 +43,9 @@ class Element
#[ORM\Column(name: 'materiale', type: Types::BIGINT, nullable: true)]
#[ORM\ManyToOne(targetEntity: Material::class)]
#[JoinColumn(name: 'materiale', referencedColumnName: 'id')]
#[ORM\JoinColumn(name: 'materiale', referencedColumnName: 'id')]
#[Groups(['element:list', 'element:item'])]
#[ApiProperty(uriTemplate: '/materials/{id}')]
private ?string $material = null;
#[ORM\Column(name: 'lavorazione', type: Types::BIGINT, nullable: true)]