JSON von JavaScript-Frontend an Rust-Backend schicken und lesen/speichern?
Genau das was im Titel steht muss umgesetzt werden, aber keine Ahnung wie und ich finde keine nützlichen Informationen dazu, deswegen hoffe ich, dass mir hier jemand helfen kann!
Bisher werden im Frontend Arrays (die Benutzerinformationen enthalten usw.) als JSON zur Local Stroage des Browsers geschickt, um die Informationen dort speichern und wieder lesen zu können; klappt auch ganz gut soweit.
Nun lautet die Aufgabe, die JSON nicht in die Local Storage zu schicken, sondern an ein Backend, das auf der Programmiersprache "Rust" läuft, welches im Prinzip die genau gleichen Aufgaben erfüllen soll wie die Local Storage: Daten empfangen, speichern und wieder schicken können (die andere Option wäre eine Datenbank erstellen und diese mit Rust pflegen, davon habe ich allerdings noch weniger Ahnung).
Klingt im Prinzip ganz simpel, allerdings habe ich sowohl mit Rust als auch mit Backends nicht sonderlich viel Erfahrung, deswegen hänge ich an diesen Schritt fest und komme nicht weiter. Dazu habe ich stand jetzt nichts umsetzen können.
Hat hier denn jemand evtl. Tipps? Ich bin nämlich ein bisschen am Verzweifeln und der Abgabetag dieses Projekts rückt immer näher. 😅
1 Antwort
Erfahrung mit Rust habe ich auch keine, aber dafür Erfahrung mit Backend.
Für die Kommunikation zwischen Frontend und Backend bietet sich eine REST API an. Auf der Frontend Seite wird es einfach sein. HTTP Requests mit JSON als Request Body lassen sich dort leicht umsetzen.
Beim Backend benötigst du einmal einen Webserver, womit du HTTP Requests entgegen nehmen kannst. Dazu ist eine JSON Library vom Vorteil.
Rocket scheint dabei eine Library für den Webserver und JSON Parser zu sein, welche du nehmen könntest.
Da du die genaue Datenstruktur nicht nennst, kann ich hier etwas weniger helfen.
Im Allgemeinen bietet sich u.A. ein Endpunkt an, der die komplette Liste zurück gibt. Hier solltest du die HTTP GET Methode benutzen. Als Antwort gibt es dann eine Liste von Objekten im JSON Format.
Je nach Datenstruktur könnte ein getById Enpunkt sinnvoll sein. Auch hier wieder ein GET mit z.B. der Id als Pfad Variable oder in der Query. Hier gibt es ein Objekt als JSON zurück.
Zum Hinzufügen eines Objektes solltest du ein HTTP POST Endpunkt anlegen. Im Request Body kannst du ein Objekt als JSON mitschicken, welches dann im Server der Liste angefügt wird.
Je nach Wunsch und Anforderung könnte es noch ein PUT Endpunkt zum setzen/überschreiben von Daten und ein DELETE Enpunkt zum Löschen von Daten geben.
Jeder Enpunk mit gleicher HTTP Methode benötigt einen individuellen Pfad. Sofern sich die Methode unterscheidet, kann der Pfad mehrfach belegt sein.
Falls du deine REST API dokumentieren möchtest, könntest du dafür die OpenAPI Specificafion nutzen. Die vorherige Version hieß Swagger.
Die Definition legst du in Form einer YAML oder auch JSON Datei an. Ais dieser Datei kannst du eine UI im Web als Client anlegen lassen. Dazu lässt sich auch der Server Code für z.B. Rust anlegen lassen.