Serverantwort und Datentypen
Antwortkomponenten, Statuscodes, Grunddatentypen
Die Antwort, die vom Server kommt, funktioniert fast nach dem gleichen Schema wie die Anfrage. Sie hat aus offensichtlichen Gründen keine Request-Parameter, aber die Header und der Body sind in der Response enthalten (obwohl sie leer sein können).
Ein wichtiger Unterschied ist der Status der Antwort.
Status Codes
Statuscode. Er steht in der ersten Zeile der Serverantwort. Der Status ist eine dreistellige Zahl (der Code selbst), gefolgt von einer erklärenden Phrase.
Anhand des Statuscodes können Sie sich über die Ergebnisse der Anfrage informieren und erfahren, welche Maßnahmen als Nächstes ergriffen werden sollten.
Alle möglichen Statuscodes sind in 5 Klassen unterteilt. Die erste Ziffer des Codes bestimmt die Zugehörigkeit zu einer bestimmten Klasse. Schauen wir uns die einzelnen Klassen an.
1xx - Informationscodes. Sie geben Auskunft über den Fortschritt der Anfrage. In der Praxis werden sie nur selten verwendet.
2xx - Erfolgscodes. Sie melden, dass alles in Ordnung ist und die Anfrage erfolgreich abgeschlossen wurde. Als Antwort auf eine GET-Anfrage erwarten wir normalerweise einen 200 (OK)-Code. Eine erfolgreiche PUT-Anfrage sendet einen 201 (Created)-Code.
3xx - Weiterleitungen. Zeigen an, dass die Anfrage an eine andere Adresse gesendet werden sollte. Ein Beispiel ist der Code 301 (Moved Permanently), der anzeigt, dass sich die gewünschten Daten nun an einer neuen Adresse befinden (die neue Adresse selbst wird im Location-Header übergeben).
4xx - Client-Fehlercodes. Der bekannteste von ihnen - 404 (Not Found) - meldet, dass es an der angegebenen Adresse keine erforderlichen Daten gibt. Andere häufige Fälle: 400 (Bad Request, Syntaxfehler in der Anfrage), 401 (Unauthorized, Authentifizierung für den Zugriff erforderlich), 403 (Forbidden, Zugriff verweigert).
5xx - Server-Fehlercodes. Melden einen Fehler auf der Serverseite. Als Beispiel: 500 (Internal Server Error, ein unverständlicher Fehler, der nicht auf einen bekannten Code zurückgeführt werden kann), 503 (Service Unavailable, der Server ist aus technischen Gründen vorübergehend nicht in der Lage, die Anfrage zu bearbeiten)
Datentypen
An dieser Stelle können wir davon ausgehen, dass wir uns mit den grundlegenden Informationen zum Verständnis der REST-API und der Struktur von HTTP-Anfragen und -Antworten beschäftigt haben. Es bleibt nur noch ein Punkt zu klären - die Datentypen. Wenn Sie bereits versucht haben, Ihre API-Anfrage in AppMaster zu erstellen, ist Ihnen wahrscheinlich aufgefallen, dass Sie bei allen Daten (in Parametern, in Headern, im Body) nicht nur den Namen, sondern auch den Datentyp angeben müssen.
Für einen Menschen ist es in der Regel ziemlich offensichtlich, wie mit den Daten zu arbeiten ist, da es einen bestimmten Kontext gibt. Angenommen, wir wissen, dass 2 + 2 = 4 ist. Wir vermuten, dass es sich um Zahlen handelt und dass das Ergebnis der Addition eine weitere Zahl sein wird.
Aber vielleicht sind es keine Zahlen, sondern Textdaten. Dann könnte das Ergebnis ihrer Addition die Verkettung von Zeichenketten sein und 2 + 2 würde zu "22" werden. Damit der Computer sich nichts einfallen lassen muss, gibt es hier eine genaue Angabe des Datentyps. Und gleichzeitig werden auch andere Aufgaben gelöst. So wird zum Beispiel ein Schutz vor der Eingabe falscher Daten geboten; in dem Feld, das für die Eingabe von Telefonnummern vorgesehen ist, gibt es zunächst keine Möglichkeit, eine E-Mail-Adresse einzutragen.
Es gibt eine ganze Reihe verschiedener Datentypen, wir werden jetzt die grundlegendsten betrachten und uns in weiteren Modulen des Kurses mit den übrigen vertraut machen.
String - String-Datentyp, einfacher Text ohne spezielle Formatierung.
Integer - Ganzzahliger Datentyp. Kann für Zähler oder Berechnungen verwendet werden, bei denen keine Bruchzahlen benötigt werden.
Float - Fließkommazahl. Wird verwendet, wenn eine höhere Genauigkeit erforderlich ist und ganzzahlige Werte nicht ausreichen.
Hier könnte sich eine logische Frage stellen. Und warum nicht immer Float, warum brauchen wir dann Integer? Aber eine höhere Genauigkeit erfordert mehr Ressourcen. Für einige kleine Berechnungen mag dies völlig unsichtbar sein, aber bei großen Datenmengen kann die Verwendung eines vernünftigen Datentyps die Anforderungen an Rechenleistung und Speicherplatz erheblich reduzieren.
Boolean - boolescher Datentyp. Der einfachste Datentyp. Er nimmt einen von zwei Werten an, die als True oder False geschrieben werden. Häufig ist die Bezeichnung in Form von 1 (wahr) und 0 (falsch) zu sehen.