Controller

Defines the Extbase Action, that must be executed when request is triggered.

1
2
3
4
5
demo_photos-all:
   path:         api/demo/photos
   controller:   LMS\Demo\Controller\PhotoApiController::all
   defaults:
     plugin:     PhotoApi

Tip

Required: Yes

<?php
     declare(strict_types = 1);

     namespace LMS\Demo\Controller;

     use LMS\Demo\Repository\PhotoRepository;
     use Psr\Http\Message\ResponseInterface;

     class PhotoApiController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
     {
         public function allAction(): ResponseInterface
         {
            $photos = PhotoRepository::make()->findAll()->toArray();

            return $this->jsonResponse(
               (string)json_encode($photos)
            );
         }
     }

Warning

Corresponding plugin should be configured in ext_localconf.php

Example request

curl --location --request GET 'https://demo.ddev.site/api/demo/photos' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json'