Client aus der Spezifikation¶
Für Sprachen ohne fertiges Paket erzeugen Sie den Client selbst aus der Spezifikation der Verifikations-API. Grundlage ist die Datei openapi.yaml nach OpenAPI 3.1.0. Sie beschreibt die Endpunkte POST /verify und POST /verify-credentials des Servers https://api.eu-captcha.eu/v1.
Note
Für PHP, Symfony und Laravel, Python, Django, Ruby und Java stehen fertige Pakete zur Verfügung. Erzeugen Sie einen eigenen Client nur für Sprachen, die dort nicht aufgeführt sind. Siehe Integration.
Voraussetzungen¶
Die folgenden Voraussetzungen müssen erfüllt sein:
| Voraussetzung | Wert |
|---|---|
| Spezifikation | Die Datei openapi.yaml liegt vor |
| Werkzeug | openapi-generator-cli; Myra erzeugt die eigenen Clients mit der Version 7.18.0 |
Client erzeugen¶
Um einen Client zu erzeugen, führen Sie den folgenden Befehl aus:
Ersetzen Sie <generator> durch den Namen des gewünschten Generators. Die folgenden Beispiele zeigen die von Myra verwendeten Aufrufe:
| Ziel | Befehl |
|---|---|
| Spring | openapi-generator-cli generate -i openapi.yaml -g spring -o spring |
| Node.js mit TypeScript | openapi-generator-cli generate -i openapi.yaml -g typescript-node -o typescript-node |
Für weitere Sprachen — etwa Go, C# oder Rust — setzen Sie den Namen des jeweiligen Generators ein. Die Liste der Generatoren gehört zum Werkzeug, nicht zur Spezifikation.
Benennung angleichen¶
Damit die erzeugten Pakete zu den Paketen von Myra passen, übergeben Sie den Namensraum und den Paketnamen als zusätzliche Eigenschaften:
openapi-generator-cli generate -i openapi.yaml -g python \
--additional-properties=invokerPackage=Myrasec\\EuCaptcha,packageName=eucaptcha,library=httpx \
-o python
Für Java verwendet Myra die folgenden Eigenschaften:
| Variante | Zusätzliche Eigenschaften |
|---|---|
java-resttemplate |
packageName=eucaptcha,groupId=com.myrasec,invokerPackage=com.myrasec.client,apiPackage=com.myrasec.client.api,modelPackage=com.myrasec.client.model,library=resttemplate |
java-webclient |
packageName=eucaptcha,groupId=com.myrasec,invokerPackage=com.myrasec.client,apiPackage=com.myrasec.client.api,modelPackage=com.myrasec.client.model,library=webclient |
java-springboot3 |
packageName=eucaptcha,groupId=com.myrasec,invokerPackage=com.myrasec.client,apiPackage=com.myrasec.client.api,modelPackage=com.myrasec.client.model,library=webclient,useSpringBoot3=true,useJakartaEe=true |
Alle drei Varianten verwenden den Generator java. Siehe Java.
Erzeugten Client verwenden¶
Der Generator legt für den Endpunkt POST /verify die Operation verifyClientToken an. Die Namen in der Zielsprache richten sich nach den Regeln des jeweiligen Generators, der Aufbau der Anfrage und der Antwort bleibt jedoch gleich:
| Feld der Anfrage | Beschreibung |
|---|---|
sitekey |
Öffentlicher Sitekey aus der Ansicht Details. |
secret |
Zum Sitekey gehörendes Secret. |
client_ip |
Tatsächliche IP-Adresse des Besuchers. |
client_token |
Token aus verify.js. |
client_user_agent |
Kopfzeile User-Agent der Anfrage. |
Siehe Client-Token prüfen.
Warning
Werten Sie in der Antwort stets auch das Feld train aus. Hat es den Wert true, hat keine Prüfung stattgefunden. Siehe Sitekey konfigurieren.
Widget einbinden¶
Der erzeugte Client übernimmt die serverseitige Prüfung. Das Widget in der Seite mit dem zu schützenden Formular ergänzen Sie unverändert. Siehe HTML und JavaScript.