PHP-REST-Client-Generator für OpenAPI™
Gib eine OpenAPI-Spezifikation ab und bekomm ein fertiges Composer-Paket zurück — typisierte Modelle, einen Client, die Operationen und die Authentifizierung, dazu Manifest, LICENSE und README.
Kostenlos. Es gibt nichts zu kaufen und nichts freizuschalten.
Was dabei herauskommt
Ein eigenständiges Paket, das sich installieren lässt wie jedes andere — ein SDK, kein Ordner voller Schnipsel.
Client und Konfiguration
Ein Einstiegspunkt, der die Basis-URL, den HTTP-Client und die Zugangsdaten hält.
Typisierte Modelle
Jedes Schema der Spezifikation als PHP-Klasse, statt Arrays mit Zeichenketten-Schlüsseln.
Operationen und Parameter
Eine Klasse je Operation, dazu eigene Objekte für Query-, Header- und Formularparameter.
Authentifizierung
Die Verfahren, die das Dokument deklariert — mit Beispielen, wenn es welche zulässt.
Eingebettete Runtime
Die HTTP-Schicht liegt im Paket selbst. Nichts, was daneben noch versioniert werden müsste.
Manifest und Papiere
composer.json, LICENSE, README und Beispiele — im Manifest steht nur, was der erzeugte Code wirklich braucht.
Sauberer Code ist das Ziel, nicht der Zufall
Der Generator wird selbst gegen PHPStan auf der höchsten Stufe geprüft, mit mehreren strengen Zusatzregelwerken obendrauf, und gegen Psalm auf der strengsten Stufe. Derselbe Maßstab wird an das angelegt, was dabei herauskommt.
Ein Versprechen, dass jede erzeugte Zeile in jedem Projekt und unter jeder Analyse-Konfiguration ohne Befund durchläuft, ist das nicht. Es ist der Anspruch, an dem der Generator sich messen lassen muss.
- Durchgehend typisiert
- declare(strict_types=1) in jeder Datei, Typen an jedem Parameter und jedem Rückgabewert, und Generics im PHPDoc dort, wo PHP selbst nicht genau genug wird.
- Unveränderlich
- final readonly Klassen ohne Setter. Geändert wird über einen Builder: toBuilder() übernimmt die Werte, build() gibt ein neues Objekt zurück — ein Modell ändert sich nie unter der Hand.
- Kein rätselhaftes null
- Ein optionales Feld bekommt einen eigenen Typ. Ob ein Wert fehlt oder bewusst leer ist, steht damit im Typ und nicht in einem Kommentar.
Am besten liest du es selbst nach
Ein vollständig erzeugtes Paket, kein Ausschnitt: 62 Modelle, 7 Operationen und über 200 Dateien — Client, Authentifizierung, Validierung, Manifest, LICENSE und Beispiele. Erzeugt aus der öffentlichen Spezifikation der DHL Parcel DE Shipping API (Post & Parcel Germany).
Ein inoffizieller Client, erzeugt aus einer öffentlich dokumentierten Schnittstelle — nicht von DHL herausgegeben und nicht von DHL unterstützt.
So läuft es
Drei Schritte, und der mittlere ist der, an dem du noch etwas ändern kannst.
Spezifikation abgeben
Lad die Datei hoch. YAML oder JSON, beides geht.
Nachsehen, was drinsteht
Bevor etwas erzeugt wird, wird das Dokument gelesen: Titel, Version, Operationen, Pfade, Sicherheitsverfahren, Warnungen. Paketname und Namensraum werden daraus vorgeschlagen — überschreiben kannst du sie.
Paket abholen
Als ZIP zum Herunterladen oder direkt als Commit in dein eigenes GitHub-Repository.
Was du wissen solltest
- OpenAPI 2.0 bis 3.2
- Welche Version vorliegt, wird aus dem Dokument gelesen und nicht abgefragt. 2.0, 3.0, 3.1 und 3.2 werden verstanden.
- Bis 5 MB je Dokument
- Größer als das nehme ich nicht an.
- ZIP oder dein Repository
- Ohne GitHub bekommst du ein Archiv. Mit GitHub geht das Paket als Commit in ein Repository, das du aussuchst.
- Folgeversionen werden gemessen
- Geht ein Paket ein zweites Mal in dasselbe Repository, wird vorher verglichen, was sich an der öffentlichen Schnittstelle geändert hat. Die Versionsnummer folgt daraus — bestätigen musst du sie.
- Nur echte Abhängigkeiten
- Das erzeugte composer.json nennt, was der Code benutzt, und nicht, was der Generator sonst noch kann.
- Keine Java-Toolchain
- Zum Erzeugen musst du nichts installieren: kein JAR, kein Docker-Image, keine Laufzeitumgebung neben der, in der du ohnehin schreibst. Erzeugt wird hier.
- Das Paket gehört dir
- Composer-Vendor und Copyright-Vermerk im LICENSE kommen aus deinem Konto. Mein Name steht nirgends darin.
Häufige Fragen
- Was kostet das?
- Nichts. Es gibt keinen Tarif, keine Grenze, die sich freikaufen ließe, und nichts, was nach einer Weile abläuft.
- Wem gehört das erzeugte Paket?
- Dir. Der Composer-Vendor und der Copyright-Halter im LICENSE werden aus deinem Konto aufgelöst, nicht aus meinem — du kannst das Paket veröffentlichen, umbenennen oder wegwerfen, ohne jemanden zu fragen.
- Was passiert mit meiner Spezifikation?
- Sie liegt in deinem Konto, bis du die Anfrage löschst — dann verschwindet sie mitsamt dem erzeugten Paket. Was im Einzelnen gespeichert wird, steht in der Datenschutzerklärung. Datenschutzerklärung lesen
- Welche OpenAPI-Versionen werden gelesen?
- OpenAPI 2.0, 3.0, 3.1 und 3.2. Welche davon vorliegt, erkennt der Generator am Dokument selbst.
- Brauche ich ein GitHub-Konto?
- Nein. Ohne GitHub bekommst du ein ZIP. Verbindest du eines, kann das Paket stattdessen direkt in ein Repository deiner Wahl committet werden.
- Hieß das früher nicht Swagger?
- OpenAPI 2.0 ist die frühere Swagger-Spezifikation 2.0. Weist dein Dokument sich als solche aus, ist es hier richtig.
Aus deiner Spezifikation wird ein Paket
Ein Konto genügt, um es auszuprobieren.
Kostenlos registrieren