...
Name | Beschreibung | ||||||
---|---|---|---|---|---|---|---|
AdminEndpoint | Erreichbar über /admin | ||||||
PublicEndpoint | Erreichbar über alle Pfade außer über Pfade die durch andere Endpunkte reserviert wurden (bspw. /admin). | ||||||
InstallEndpoint | Erreichbar über /install | ||||||
ErrorDocumentEndpoint | Erreichbar über /errorDocument | CronEndpoint |
Codeblock | ||
---|---|---|
| ||
php /var/www/plugin/remote/brandbox/framework/src/entrypoint.php -endpoint=Cron -package=XXX/YYY -host=your.brandbox.de -cronjobid=123 |
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:
Klassenname | Beschreibung |
---|---|
SuperAuthorized | Gibt an, ob ein Endpoint vollständig ohne Rechteprüfung arbeiten kann. |
RoleScoped | Gibt an, ob ein Enpoint für Rollen zugeordnet werden kann. Falls nicht, erbt der Endpoint ggf. die Rollen von einem anderen Endpoint. |
Routable | Gibt an, ob ein Endpoint routable ist. Siehe Routing |
Eventübersicht
Klassenname | Beschreibung |
---|---|
OnInitiateEndpoint | Wird hauptsächlich im PublicEndpoint vor dem Verarbeiten der Executes/Requests ausgelöst |
OnPopulateEndpoint | Wird ausgeführt, bevor der Endpoint instanziiert ist - Das Event wird verwendet, um den richtigen Endpoint einzufangen |
OnRequestEndpoint | Wird hauptsächlich im PublicEndpoint ausgelöst - sobald der Parameter $request nicht in der Anfrage steckt |
OnTearDown | Das Event wird ausgelöst, unmittelbar bevor die Antwort gesendet wird |
...