This package is developed by valantic CEC Schweiz and is under active development.
Bundle is used for generating API documentation based on API controllers.
- Pimcore >= 11.0.0
composer require valantic/pimcore-api-documentation
- Add
ValanticPimcoreApiDocumentationBundle
toconfig/bundles.php
class ProductController implements \Valantic\PimcoreApiDocumentationBundle\Http\Controller\ApiControllerInterface
{
use \Valantic\PimcoreApiDocumentationBundle\Controller\ApiControllerTrait;
#[Route(path: '/product', name: 'rest_api_product_create', methods: Request::METHOD_POST)]
public function create(ProductCreateRequest $request): ProductCreateResponse|\Valantic\PimcoreApiDocumentationBundle\Http\Response\BadRequestResponse
{
$errors = $this->validateRequest($request);
if (count($errors) !== 0) {
return new \Valantic\PimcoreApiDocumentationBundle\Http\Response\BadRequestResponse($errors);
}
return new ProductCreateResponse(/* ... */);
}
}
use Symfony\Component\Validator\Constraints as Assert;
class ProductCreateRequest implements \Valantic\PimcoreApiDocumentationBundle\Http\Request\Contracts\HasJsonPayload
{
#[Assert\NotBlank]
public ?string $name = null;
#[Assert\NotBlank]
public ?string $description = null;
}
class ProductCreateResponse implements \Valantic\PimcoreApiDocumentationBundle\Http\Response\ApiResponseInterface
{
public static function status(): int
{
return \Symfony\Component\HttpFoundation\Response::HTTP_CREATED;
}
public static function getDtoClass(): string|false
{
return ProductCreateDto::class;
}
}
class ProductCreateDto
{
public function __construct(
public ?int $id,
) {}
}