Skip to content

Instantly share code, notes, and snippets.

@AchillesKal
Forked from atlance/Controller.php
Last active October 11, 2023 04:33
Show Gist options
  • Save AchillesKal/673e20882fe7bba5b34407f9b4c06a80 to your computer and use it in GitHub Desktop.
Save AchillesKal/673e20882fe7bba5b34407f9b4c06a80 to your computer and use it in GitHub Desktop.
Open API attributes for nelmio api doc
<?php
declare(strict_types=1);
// ...
use OpenApi\Attributes as OA;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
#[OA\Get(
tags: ['foo-bar'],
description: 'Oh Yeah!!!',
parameters: [
new OA\Parameter(ref: '#/components/parameters/version'),
],
responses: [
new OA\Response(
response: Response::HTTP_OK,
description: 'code 200, example array of objects.',
content: new OA\JsonContent(
type: 'array',
items: new OA\Items(ref: new Model(type: UserIdentity::class, groups: ['full']))
)
),
new OA\Response(
response: Response::HTTP_CREATED,
description: 'code 201, example single object.',
content: new OA\JsonContent(ref: new Model(type: UserIdentity::class, groups: ['full']))
),
new OA\Response(
response: Response::HTTP_ACCEPTED,
description: 'code 202, example custom object without model.',
content: new OA\JsonContent(
type: 'object',
properties: [
new OA\Property(property: 'foo', type: 'string'),
new OA\Property(property: 'bar', type: 'integer'),
new OA\Property(
property: 'baz',
type: 'array',
items: new OA\Items(ref: new Model(type: UserIdentity::class, groups: ['full']))
),
]
)
),
new OA\Response(response: Response::HTTP_BAD_REQUEST, description: 'code 400, sorry =('),
new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: 'code 500, ooops!'),
]
)]
#[Route(path: '/get/endpoint', name: 'get_endpoint', methods: ['GET'])]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment