Seite 1 von 2

API Dokumentation

Verfasst: Mo 16. Jan 2023, 01:55
von ch4d1
Hi zusammen,

ich habe mich die Tage angefangen mit dem Bot zu beschäftigen. Habe es erfolgreich geschafft die Konsolen Version zusammen mit dem bereitgestellten Web Interface in einen Docker Container zu schmeißen und zum laufen zu bringen.

Allerdings kam mir der Gedanke das Web Interface ein wenig anzupassen und wollte daher mal Fragen ob es zur REST API des Bots eine Dokumentation gibt. Meine Idee war es entweder das vorhandene Interface um Features zu erweiterten oder halt in z.B. Angular neu zuschreiben. Aber wenn man nicht weiß was funktioniert... ist das schwierig :D

Interessant wäre halt alles was man nicht so direkt sehen/erahnen kann.
Geschichten wie ?head=<int>, /logs?count=<int> sowie POST Requests und ob es Features gibt die im aktuellen Interface fehlen z.B. Postfach Gilden Optionen etc.

Viele Grüße ~

Re: API Dokumentation

Verfasst: Mo 16. Jan 2023, 18:26
von boeserwolf
Hallo,

Leider ist die Dokumentation auch auf unserer Seite nicht so gut wie wir sie gerne hätten (Ich gehe auch davon aus, dass sich die Implementierung und Schnittstelle nochmal ändern wird). Was ich dir geben kann sind folgende Beispiele:

Code: Alles auswählen

authentication via user/password
curl -u user:passwort -X OPTIONS http://localhost:8443/

authentication via user/password to see created sessionId
curl -I -u user:passwort -X OPTIONS http://localhost:8443/

authentication via session
curl -H "Session-Id: XXX" -X OPTIONS http://localhost:8443//

Beschreibung was du machen kannst, zB:
curl -u user:passwort -X OPTIONS http://localhost:8443/
curl -u user:passwort -X OPTIONS http://localhost:8443/bot

anzeige der aktuellen Bot details zB:
curl -u user:passwort -X GET http://localhost:8443/

anzeige der aktuellen Bot details(als kurzInfo) zB:
curl -u user:passwort -X GET http://localhost:8443/?head=1

Anzeige von Metainfos der Einstellungen
curl -u user:passwort -X GET http://localhost:8443/Settings!GetMetaInfo

Anzeige von loginFehlern, zB:
curl -u user:passwort -X GET http://localhost:8443/loginErrors (alle)
curl -u user:passwort -X GET http://localhost:8443/loginErrors/geheim@::1 (spezifischer login)
Löschen eines Loginfehlers, zB:
curl -u user:passwort -X DELETE http://localhost:8443/loginErrors/geheim@::1

anlegen von objekten(zB Account):
curl -u user:passwort -X PUT --data "{'adress':'w14.sfgame.net', 'name':'m', 'password':'p'}" http://localhost:8443/bot/accounts

login von accounts
curl -u user:passwort -X GET http://localhost:8443/bot/accounts/Acc@W14.SFGAME.NET!login

start von accounts
curl -u user:passwort -X GET http://localhost:8443/bot/accounts/Acc@W14.SFGAME.NET!start

holen der Charakterbilder
curl -u user:passwort -X GET http://localhost:8443/Bot/Accounts/Acc@W14.SFGAME.NET!getCharacterImage
Gruß
boeserwolf

Re: API Dokumentation

Verfasst: Mo 16. Jan 2023, 20:11
von ch4d1
Hey,

Danke dir, das hilft mir schon weiter. :)

Ich melde mich sobald ich was zum präsentieren habe. Außer natürlich das ist nicht gewünscht. :?

Viele Grüße ~

Re: API Dokumentation

Verfasst: Di 17. Jan 2023, 13:25
von ch4d1

Code: Alles auswählen

root@local-mfbot:/mfbot# curl -f -u user:pass 'http://127.0.0.1:1024/bot/accounts/USER@SERVER.SFGAME.TLD!login'
{
  "response": {
    "data": true
  },
  "requestMeta": {
    "requestMethod": "GET",
    "requestUrl": "http://127.0.0.1:1024/bot/accounts/USER@SERVER.SFGAME.TLD!login"
  },
  "responseMeta": {
    "interfaceVersion": 3,
    "botVersion": "5.4.3.0",
    "responseType": "Boolean"
  }
}
root@local-mfbot:/mfbot# curl -f -u user:pass 'http://127.0.0.1:1024/bot/accounts/USER@SERVER.SFGAME.TLD!getCharacterImage'
curl: (22) The requested URL returned error: 404 Not Found
Hi,

mir ist aufgefallen, dass der Befehl '!getCharacterImage' nur klappt, wenn man in der GUI Version auf 'Details anzeigen' geklickt hat. Das ist jedoch in der Konsolen Version nicht möglich. Gibt es einen weiteren API-Call der vor diesem abgesetzt werden muss oder ist das ein Bug?

Viele Grüße ~

Re: API Dokumentation

Verfasst: Di 17. Jan 2023, 21:33
von boeserwolf
Kein Bug- eher ein fehlendes Feature: die Charakter Generierung nutzt Features von .Net die es nur in der Gui-Version gibt (zumindest war das damals so). Daher wird die Generierung on der Console nicht aufgerufen

Re: API Dokumentation

Verfasst: Do 19. Jan 2023, 20:21
von ch4d1
Aber auch bei der GUI-Version klappt dies erst nachdem man auf "Details anzeigen" in der GUI geklickt hat. Fehlt hier nicht eventuell einfach das ausführen der Methode zum generieren des Bildes beim aufrufen des API-Calls?

Re: API Dokumentation

Verfasst: Fr 20. Jan 2023, 06:38
von boeserwolf
Das beruht auf dem selben Problem wie inder console:
Der API Code ist derselbe für console und GUI, daher konnten wir die Bildgenerierung dort nicht ausführen. Daher wird der Code nur getriggert wenn die Accountseite geöffnet wird.

Re: API Dokumentation

Verfasst: Mo 23. Jan 2023, 07:03
von boeserwolf
Wir diskutieren gerade Team-intern eine neue API. Hättest du Interesse diese als Betatester zu testen sollten wir soweit sein?

Läuft dein Bot unter Windows oder Linux? Wir haben das Ziel demnächst von Mono auf dotnetcore umzusteigen..

Re: API Dokumentation

Verfasst: Di 24. Jan 2023, 11:23
von ch4d1
Sehr gerne, ich nutze aktuell ein Gemisch aus Windows und Linux.
Um die API zu testen nutze ich primär Windows, allerdings auch im Anschluss Docker im Container auf Linux (Raspberry Pi ARM64)

Re: API Dokumentation

Verfasst: Di 24. Jan 2023, 19:44
von boeserwolf
Welche Aufgaben wären dir für die API besonders wichtig? Ich werde jetzt nicht alle APIs auf einmal implementieren können...
Folgende APIs habe ich aktuell(die Account Einstellungen sind nicht komplett implementiert - da war ich bei der Anzahl aktuell zu faul :D ):
2023-01-24 19_40_58-Swagger UI – Mozilla Firefox.png
2023-01-24 19_40_58-Swagger UI – Mozilla Firefox.png (62.57 KiB) 1804 mal betrachtet
2023-01-24 19_41_37-Swagger UI – Mozilla Firefox.png
2023-01-24 19_41_37-Swagger UI – Mozilla Firefox.png (23.53 KiB) 1804 mal betrachtet
2023-01-24 19_41_29-Swagger UI – Mozilla Firefox.png
2023-01-24 19_41_29-Swagger UI – Mozilla Firefox.png (54.46 KiB) 1804 mal betrachtet