Extends omsorgCore with full CRUD for Facility/Contract/Order plus configurable value lists and an audit trail, and wires the omsorgapp frontend up to the new facilities, settings, and audit-log modules; includes a sidebar active-nav-item highlight. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
3.6 KiB
Anleitung — omsorgcore-client-php
Generierter PHP-Client für die omsorgCore-API, erzeugt mit openapi-generator-cli aus der Swagger/OpenAPI-JSON des Backends. Ersetzt (noch) nicht den handgeschriebenen Wrapper lib/omsorgCoreClient.php (reiner cURL-Wrapper, eigenes Rückgabeformat ['ok', 'status', 'data']) — der bleibt unverändert im Einsatz. Dieser Client ist eine zusätzliche, eigenständige Bibliothek.
README.md in diesem Ordner wird bei jeder Generierung automatisch neu geschrieben (Standard-Output von openapi-generator, dokumentiert die generierten API-Klassen) — diese Datei hier nicht, sie bleibt stabil.
Voraussetzungen
- Node.js + npx (für
openapi-generator-cli, keine separate Node-Installation im restlichenomsorgWebnötig — nur für die Generierung selbst) - Java (wird von
openapi-generator-cliintern benötigt,javamuss imPATHsein) - Composer (für den generierten PHP-Client — im Gegensatz zum Rest von
omsorgWeb, das bewusst framework-/Composer-frei ist. Installation z. B.sudo apt install composeroder offizielles Installer-Skript von getcomposer.org) omsorgCoremuss lokal im Development-Modus laufen, da Swagger nur dort aktiv ist
API lokal starten (für die Generierung)
cd omsorgCore
ASPNETCORE_ENVIRONMENT=Development dotnet run --project src/OmsorgCore.Api
# → Swagger-JSON unter http://localhost:5245/swagger/v1/swagger.json
Client neu generieren
cd omsorgWeb/mitarbeiter-app/api-client-php
./generate.sh
Nimmt die Backend-URL aus OMSORG_CORE_URL (Default http://localhost:5245, dieselbe Konvention wie OMSORG_CORE_URL in omsorgapp bzw. die Basis-URL in lib/omsorgCoreClient.php). Überschreibt lib/, docs/, test/, README.md, composer.json, .gitignore mit dem aktuellen generierten Stand — danach git diff prüfen, bevor committet wird.
Abhängigkeiten installieren
composer install
Installiert u. a. guzzlehttp/guzzle (HTTP-Client, vom generierten Code genutzt) nach vendor/. vendor/ ist .gitignore't — nur der generierte Quellcode unter lib/ wird eingecheckt.
Verwendung (Beispiel)
<?php
require_once __DIR__ . '/api-client-php/vendor/autoload.php';
$config = OmsorgCoreClient\Configuration::getDefaultConfiguration()
->setHost(getenv('OMSORG_CORE_URL') ?: 'http://localhost:5245');
$authApi = new OmsorgCoreClient\Api\AuthApi(new GuzzleHttp\Client(), $config);
$loginRequest = new OmsorgCoreClient\Model\LoginRequest([
'username' => 'admin',
'password' => 'abersicher',
]);
$loginResponse = $authApi->apiAuthLoginPost($loginRequest);
echo $loginResponse->getAccessToken();
Jeder Controller aus omsorgCore hat eine eigene Api-Klasse unter OmsorgCoreClient\Api\ (AuthApi, EmployeesApi, FacilitiesApi, ContractsApi, OrdersApi, RolesApi, UsersApi, ValueListsApi, AuditLogApi, AdminSessionsApi, AdminEmailApi, HealthApi) — siehe docs/Api/ für die vollständige Methodenliste je Klasse. (Namespace ist OmsorgCoreClient, nicht OmsorgCore\Client — das \\-Escaping im invokerPackage-Parameter von generate.sh wurde vom Generator beim ersten Lauf nicht wie erwartet aufgelöst, siehe composer.jsons psr-4-Mapping.)
Wichtig: nach Backend-Änderungen
Sobald sich Controller/DTOs in omsorgCore ändern (neue Endpunkte, neue Felder in Requests/Responses), sollte dieser Client neu generiert und der Diff mitcommittet werden — sonst driftet er unbemerkt vom tatsächlichen Backend-Vertrag ab.