Serverantwoord en gegevenstypen
Antwoordcomponenten. Statuscodes. Basisgegevenstypes
De Response die van de server komt, werkt bijna volgens hetzelfde schema als Request. Het heeft, om voor de hand liggende redenen, geen request parameters, maar de Headers en de Body zijn opgenomen in het antwoord (hoewel ze leeg kunnen zijn).
Een belangrijk verschil is de status van het antwoord.
Statuscodes
Statuscode. Deze staat in de eerste regel van het antwoord van de server. De status is een getal van drie cijfers (de code zelf), gevolgd door een verklarende zin.
Aan de hand van de statuscode kunt u de resultaten van het verzoek achterhalen en begrijpen welke acties vervolgens moeten worden ondernomen.
Alle mogelijke statuscodes zijn onderverdeeld in 5 klassen. Het eerste cijfer van de code bepaalt of u tot een bepaalde klasse behoort. Laten we ze opsplitsen.
1xx - informatiecodes. Rapporteren de voortgang van het verzoek. In de praktijk worden ze zelden gebruikt.
2xx - succescodes. Zij melden dat alles in orde is en het verzoek met succes is afgerond. Als antwoord op een GET-verzoek verwachten we gewoonlijk een 200 (OK) code. Een succesvol PUT verzoek stuurt een 201 (Created) code.
3xx - redirects. Geeft aan dat het verzoek naar een ander adres moet worden gestuurd. Een voorbeeld is code 301 (Permanent verplaatst), die aangeeft dat de vereiste gegevens zich nu op een nieuw adres bevinden (het nieuwe adres zelf wordt doorgegeven in de Location-header).
4xx - foutcodes van de client. De bekendste daarvan - 404 (Not Found), meldt dat er geen noodzakelijke gegevens zijn op het opgegeven adres. Andere veel voorkomende gevallen: 400 (Bad Request, syntaxisfout in het verzoek), 401 (Unauthorized, authenticatie vereist voor toegang), 403 (Forbidden, toegang geweigerd).
5xx - server foutcodes. Meldt een fout aan de kant van de server. Als voorbeeld: 500 (Internal Server Error, elke onbegrijpelijke fout die niet kan worden toegeschreven aan een bekende code), 503 (Service Unavailable, de server kan het verzoek om technische redenen tijdelijk niet verwerken).
Gegevenstypen
Op dit punt kunnen we aannemen dat we de basisinformatie voor het begrijpen van de REST API en de structuur van HTTP-verzoeken en antwoorden hebben behandeld. Rest ons nog één punt op te helderen - datatypes. Als u al geprobeerd hebt uw API-verzoek in AppMaster te creëren, is het u waarschijnlijk opgevallen dat alle gegevens (in parameters, in headers, in body) u vragen om niet alleen de naam, maar ook het datatype op te geven.
Het is meestal vrij duidelijk voor een mens hoe met de gegevens te werken, omdat er een bepaalde context is. Stel dat we weten dat 2 + 2 = 4. We denken dat dit getallen zijn en dat het resultaat van de optelling een ander getal zal zijn.
Maar misschien zijn het geen getallen, maar tekstuele gegevens. Dan zou het resultaat van hun optelling de aaneenschakeling van strings kunnen zijn en zou 2 + 2 veranderen in "22". Hier is een exacte aanduiding van het gegevenstype, zodat de computer nergens aan hoeft te denken. En tegelijkertijd worden andere taken opgelost. Er wordt bijvoorbeeld bescherming geboden tegen het invoeren van onjuiste gegevens; in eerste instantie is er geen mogelijkheid om een e-mailadres te registreren in het veld dat bedoeld is voor het invoeren van nummers van een telefoonnummer.
Er zijn nogal wat verschillende gegevenstypes, nu zullen we de meest elementaire bekijken, en in verdere modules van de cursus zullen we kennismaken met de rest.
String - Gegevenstype String, platte tekst zonder speciale opmaak.
Integer - Integer gegevenstype. Kan worden gebruikt voor tellers of berekeningen waarbij fractionele getallen niet nodig zijn.
Float - Floating point getal. Wordt gebruikt wanneer meer precisie nodig is en gehele getallen niet volstaan.
Hier kan een logische vraag rijzen. Waarom gebruiken we niet altijd Float, waarom hebben we dan Integer nodig? Maar een grotere nauwkeurigheid vereist meer middelen. Voor sommige kleine berekeningen kan dit volledig onzichtbaar zijn, maar bij grote hoeveelheden gegevens kan het gebruik van een redelijk gegevenstype de eisen aan rekenkracht en schijfruimte aanzienlijk verminderen.
Boolean - Booleaans gegevenstype. Het eenvoudigste gegevenstype. Het neemt één van twee waarden aan, die worden geschreven als True of False. U ziet de aanduiding vaak in de vorm van 1 (waar) en 0 (onwaar).