Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Erreichbar auf der Commandozeile. Beispiel:

NameBeschreibung
AdminEndpointErreichbar über /admin
PublicEndpointErreichbar über alle Pfade außer über Pfade die durch andere Endpunkte reserviert wurden (bspw. /admin).
InstallEndpointErreichbar über /install
ErrorDocumentEndpoint Erreichbar über /errorDocumentCronEndpoint 
Codeblock
languagebash
php /var/www/plugin/remote/brandbox/framework/src/entrypoint.php -endpoint=Cron -package=XXX/YYY -host=your.brandbox.de -cronjobid=123
RestEndpoint Siehe RESTful Api (join-restful)SsoEndpointSiehe Single Sign On (SSO)KlassennameBeschreibungOnInitiateEndpointWird hauptsächlich im PublicEndpoint vor dem Verarbeiten der Executes/Requests ausgelöstOnPopulateEndpointWird ausgeführt, bevor der Endpoint instanziiert ist - Das Event wird verwendet, um den richtigen Endpoint einzufangenOnRequestEndpointWird hauptsächlich im PublicEndpoint ausgelöst - sobald der Parameter $request nicht in der Anfrage steckt OnTearDownDas Event wird ausgelöst, unmittelbar bevor die Antwort gesendet wird 

Aufbau

Es können beliebig neue Endpunkte erstellt werden. Damit sie als solche erkannt werden, müssen sie das Interace \Brandbox\Framework\Brandbox\Endpoint\EndpointInterface implementieren und in einem Package unter Lib/Endpoint als (.*)Endpoint.php liegen. Folgend ein typischer Endpoint. 

...

  • Rollen/Rechte sollen nicht validiert werden (IS_SUPER_AUTHORIZED=true)
  • Rollen/Rechte oder Basic Auth sollen zu anderen Endpunkten abgegrenzt werden können
  • Die Standard-Endpoints führen zu viele Operationen aus, die hier nicht benötigt werden
    • Es wird keine Session benötigt
    • Es wird keine Datenbank-Verbindung benötigt
  • Dynamische Executes und/oder Requests sind nicht gewünscht (Sicherheitsaspekt)
  • Collations/Sprache/Land sollen statisch sein
  • Die Kopplung an das Mandantensystem soll aufgelöst werden
  • Der Zugriffsvektor ist ein anderer (bspw. Bash oder Browser)
  • Events sollen oder sollen nicht getriggert werden (siehe Eventübersicht)

Flags

Endpoints können Flags erhalten, die es möglich machen, sie entsprechend zu klassifizieren. Folgende Flags gibt es:

KlassennameBeschreibung
SuperAuthorizedGibt an, ob ein Endpoint vollständig ohne Rechteprüfung arbeiten kann.
RoleScopedGibt an, ob ein Enpoint für Rollen zugeordnet werden kann. Falls nicht, erbt der Endpoint ggf. die Rollen von einem anderen Endpoint. 
RoutableGibt an, ob ein Endpoint routable ist. Siehe Routing

Eventübersicht

KlassennameBeschreibung
OnInitiateEndpointWird hauptsächlich im PublicEndpoint vor dem Verarbeiten der Executes/Requests ausgelöst
OnPopulateEndpointWird ausgeführt, bevor der Endpoint instanziiert ist - Das Event wird verwendet, um den richtigen Endpoint einzufangen
OnRequestEndpointWird hauptsächlich im PublicEndpoint ausgelöst - sobald der Parameter $request nicht in der Anfrage steckt 
OnTearDownDas Event wird ausgelöst, unmittelbar bevor die Antwort gesendet wird

...