API Endpunkt

API Endpunkte können von externen Applikationen aufgerufen werden. Wird ein neuer Endpunkt über eine Komponente registriert, so pflegt er sich nahtlos in die Struktur der bestehenden Endpunkte ein. Alle Endpunkte unterliegen dabei der Standard-Authentifizierung der REST API der Software. In der Klasse API können beliebig viele Methoden definiert werden, die im Folgenden über die Route api/v4/modul_name/methoden_name aufgerufen werden können. Benötigt die Methode Argumente, so werden diese durch den Delimiter / getrennt in der URL angefügt.

Rückgaben erzeugen

Die API gibt Daten als JSON String zurück. Um eine Rückgabe zu Erzeugen wird die Ausgabe der geerbten Methode $this->return(int $http_response_code, mixed $data); zurück gegeben. Die weitere Verarbeitung der Daten übernimmt das API Framework.

API.php

Herunterladen: API.php

<?php

namespace Modules\Core\Components;

use Modules\Core\Components\API\Framework\API as Framework;

/**
 * Class API
 *
 * Module specific implementation of REST-API v4 methods. Implemented
 * respectively for the "Core" module of the application.
 */
class API extends Framework
{
    /**
     * API constructor.
     *
     * Module specific API request pre-processing which is not dependent
     * on the endpoint which is being called. By default this calls the
     * standard API framework data pre-processing which provides all
     * request data as class attributes.
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Endpoint example. This function would be called on endpoint:
     * /api/v4/Sample/example
     */
    public function example()
    {
        return $this->return(200, "example");
    }
  
    /**
     * Endpoint example. This function would be called on endpoint:
     * /api/v4/Sample/example_params/(:any)/(:any)
     */
    public function example_params($var1, $var2)
    {
        return $this->return(200, [
            'var1' => $var1,
            'var2' => $var2,
        ]);
    }

    //TODO: Implement API v4 functionality for "Sample" module
}