Jump to content

TUTORIAL Entwickler Informationen zur DR!FT Community API


Recommended Posts

Achtung: Diese Funktion richtet sich an Personen mit IT-Kenntnissen, die bereit sind, sich mit dem Thema eingehend zu befassen.


Die Entwicklung von Software mit der DR!FT API

In diesem Beitrag wollen wir erklären, wie die DR!FT API funktioniert, wo ihr eine technische Beschreibung der API herbekommt und auf eure Fragen rund um die Entwicklung von Software für die API eingehen.

Zum Verständnis der API und zur Arbeit mit ihr empfehlen wir dringend, zuerst den anderen Beitrag zur Nutzung der DR!FT Community API zu lesen. Das Projekt mit dem Beispielserver findet ihr hier:

https://github.com/christiangeissler/driftapi

Die Dokumentation der API ist in den Beispielserver integriert und kann im laufenden Zustand über den Browser unter dieser URI aufgerufen werden:

Zitat

localhost:8001/docs

Weitere Informationen zur Funktionsweise des Servers findet ihr im Kapitel "DR!FT Community API" in der Readme.md des Projektes (<- der unterstrichene Text ist ein Link dorthin).

Die API folgt dem REST Standard (also JSON formatierte http-Anfragen). Der Racingserver selbst nutzt die Python-Bibliothek "Fastapi", um nicht nur die API selbst, sondern auch zugleich eine Dokumentation dieser zu liefern, sowie eine interaktive Testfunktionen mit Beispielen bereitzustellen.

Was ist der Zweck der API?

Im Endeffekt stellt uns Sturmkind mit der API die Möglichkeit bereit, selbst fast beliebige Komponenten zu entwickeln, die auf Ereignisse im Spiel reagieren. Die einfachsten Anwendungsfelder sind Racing-Server, welche die Basis für viele weitere Ideen darstellen können. Ich möchte euch hier einladen, um mit mir Ideen zu entwickeln und diese konkret in die Tat umzusetzen. Der aktuell verfügbare Racing-Server ist zwar für Entwickler interessant, weil er es erlaubt, sehr schnell und einfach Funktionen umzusetzen und zu testen, er hat aber einen gewaltigen Nachteil, denn er ist für den Normalnutzer kaum aufzusetzen.

Daher wäre mein Ziel, das Ganze in Form einer im Internet gehosteten Webseite umzusetzen, wo sich Leute registrieren können, Rennen anlegen und dann einfach eine über das Internet zugängliche URI angeben können, an die Renninformationen übermittelt werden, die dann auf einem Scoreboard angezeigt werden können. Falls ihr Lust, die Fähigkeiten und Zeit habt, mich bei diesem Unterfangen zu unterstützen, so meldet euch gerne hier oder schreibt mir eine PN.

Alternativ könnt ihr auch gerne vollkommen unabhängig etwas entwickeln. Ich würde mich sehr darüber freuen, wenn ihr eure Eigenentwicklungen hier vorstellt, und bin gerne behilflich, wenn es weitere Fragen bezüglich der API gibt.

Darf ich den Racingserver forken/weiterentwickeln?

Der Racing-Server steht als Open Source Projekt unter MIT Lizenz zur freien Verfügung. Gerne könnt ihr ihn weiterentwickeln, an eure Bedürfnisse anpassen oder verrückte Zusatzfunktionen einbauen.

Wie geht es weiter?

Mit diesem Release ist die Entwicklung der API noch nicht abgeschlossen, denn sie soll mit der Zeit durch weitere sinnvolle Funktionen erweitert werden. Auch werden wir in Zukunft sicherlich einige spannende Projekte sehen, die mit der API umgesetzt wurden. Diese Ecke des Sturmkind-Forums soll als Anlaufpunkt für die Vorstellung solcher Projekte, der Ideensammlung zu solchen Entwicklungen, aber auch der API selbst dienen. Also fühlt euch eingeladen, hier selbst Themen aufzumachen, nach Mitentwicklern zu suchen und eure Projekte vorzustellen.

  • Like 5
  • Thanks 6
Link to comment
Share on other sites

Bitte melde dich an um den Link zu sehen.

 Mega Arbeit. Bin auch super gespannt was in den nächsten Wochen und Monaten passieren wird. 
 

Eine Frage frage habe ich schon (das ließ sich im Vorfeld nicht herausfinden ;). Beim Ping kann der Server die Einstellung in der App überschreiben. Mega. Jetzt ergibt auch der Button „Synchronieren“ einen Sinn. Aber was macht der „status“. Der kann ja nur True/false annehmen. Aber für was genau?

  • Like 1
Link to comment
Share on other sites

Bitte melde dich an um den Link zu sehen.

Also Server läuft, sehe die Web Oberfläche und diese lässt sich astrein bedienen. Mit dem PC bin ich im Netzwerk a la LAN Kabel, mit dem Handy via W-Lan.(Alles im selben Setzwerk)

 

Nur verbietet mit die App zu synchronisieren, egal ob ich die Rechner IP angebe, Die localhost IP oder die welche vom Server bereitgestellt wird.

Firewall ist konfiguriert etc.

 

Link to comment
Share on other sites

Posted (edited)
vor 6 Minuten schrieb Blacky90:

Bitte melde dich an um den Link zu sehen.

Also Server läuft, sehe die Web Oberfläche und diese lässt sich astrein bedienen. Mit dem PC bin ich im Netzwerk a la LAN Kabel, mit dem Handy via W-Lan.(Alles im selben Setzwerk)

 

Nur verbietet mit die App zu synchronisieren, egal ob ich die Rechner IP angebe, Die localhost IP oder die welche vom Server bereitgestellt wird.

Firewall ist konfiguriert etc.

 

Bitte melde dich an um den Link zu sehen.

Kannst du die Serveroberfläche vom Smartphone aufrufen? Also einfach über http://<ip-des-pcs>:8080 ?

(Die richtige IP des Servers rauszufinden und dann tatsächlich auch durch zu kommen ist nicht so trivial, Firewall, Übereifrige Router, da gibts ne Menge was dazwischenfunken kann). Achtung: Die im Server selbst über die Webseite angezeigte IP ist oft nicht richtig.

Edited by Decrayer
Link to comment
Share on other sites

Posted (edited)

Bitte melde dich an um den Link zu sehen.

 das ist schon mal gut, dann müsste die App auch funktionieren. Hast du nen Rennen angelegt? Und vom Smartphone aus müsstest du dann in der Drift App http://<ip-des-pcs>:8001/game angeben. Achtung: Port ist anders.

Edited by Decrayer
Link to comment
Share on other sites

Gerade eben schrieb Decrayer:

Bitte melde dich an um den Link zu sehen.

 das ist schon mal gut, dann müsste die App auch funktionieren. Hast du nen Rennen angelegt?

auch das ist getan und die ID ist auch richtig eingefügt

 

Link to comment
Share on other sites

Danke das lässt das IT-Herz höher schlagen und das kombiniert mit dem eigenen hobby nice :D.

Wenn ich was brauchbares gebastelt habe kann ich mich ja melden :D.

ich würde mir das am we mal anschauen und mal aufn webserver aufsetzen aber werde noch nen login mit keycloak integrieren denke ich :D.

 

  • Like 1
Link to comment
Share on other sites

Auf meinem Desktop läuft Docker nicht (Hyper V Hypervisor ist nicht verfügbar --- Grund: selbst schuld an der schrägen Config meiner Dose). Bevor ich Docker jetzt auf den Raspi drauffrickele und mich dann über fehlenden Speicher oder ähnliches ärgere, hätte ich eine Frage: Kann ich den Racing Server auch nativ unter Windows oder Linux installieren? 

 

PS: Auch hier nochmal VIELEN DANK für dieses Projekt! Das bringt auch bei mir zwei Themen zusammen, für die ich jeweils einzeln schon sehr begeistert bin! 😄 

Link to comment
Share on other sites

Posted (edited)

Bitte melde dich an um den Link zu sehen.

nativ geht prinzipiell, die driftapi und streamlit sind in python geschrieben und in den jeweiligen unterordnern gibt es requirement.txt dateien, die du mit pip install -r ausführen kannst. Aber du brauchst auch noch ne MongoDB Instanz.

Bitte melde dich an um den Link zu sehen.

ja, nen keycloak mit webserver ist ne super Idee. Ich hab leider nicht ganz so viel webdev Praxis, sonst hätte ich das auch gleich so gemacht.

Edited by Decrayer
  • Like 1
Link to comment
Share on other sites

Cool ... probiere ich am Wochenende mal aus. Hab jetzt doch angefangen mit dem Raspi. Wenn das geht könnte man damit recht einfach einen portablen Gameserver bauen, den man ohne viel Gedöns zum Treffen mitnehmen kann. Hübsch konfiguriert würde der einen Wlan für die teilnehmenden Handys aufspannen und soweit ich es von hier umreisse, müsste man den Startup usw skripten können, so dass man die Kiste dann headless vom Handy aus bedienen kann.

 

PS: Habe schon lange nicht mehr mit so einem debil glücklichen Grinsen vorm Rechner gesessen. 😉 

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

In order to optimize our website for you and to continuously improve it, we use cookies. By continuing to use the website, you consent to the use of cookies. Further information on cookies can be found in our Privacy Policy