API Basics
Thema 2 Brünnler
Thema 2 Brünnler
-
- 1 / 16
-
Cartes-fiches
Was ist JSON und wozu wird es in diesem Modul verwendet?
JSON (JavaScript Object Notation) ist ein serialisiertes Dateiformat für den Datenaustausch.
JSON wird in diesem Modul für den Datenaustausch in APIs mittels REST verwendet und erklärt.
JSON Objekte bestehen aus key-value pairs
Was ist REST und wozu wird es verwendet?
REST(Representational State Transfer) bezeichnet einen Architekturansatz beschreibt, wie verteilte Systeme miteinander kommunizieren können.
Implementiert wird es meist als API , welches HTTP/S, URI und JSON für die Kommunikation nutzt
Welche Eigenschaften hat REST?
-REST Server stellen Ressourcen mittels URI's
-REST Server speichert nicht den Status des CLients (no session)
-Client muss den Status des Clients jedes Mal schicken da sessionless
Welche HTTP methoden/verbs kennt REST?
-Delete
-Get
-Post(create)
-Put(update)
Nennen Sie einige der Best Practies in REST
- Selbsterklärende namen für die URI verwenden
- Eigene URI für jede resource welche man publizieren will
- GET sollte niemals Daten verändern
- PUT und DELETE sollten immer wieder das Selbe auf dem Server ausführen
- Links werden in Antworten verwendet
- Verwendet HTTP Accept request header (format mit dem der server antworten soll)
- Use Cache-Control response header also privat: GET wird standardmässig gecached, POST/PUT nicht
- Content-Type response header verwenden um die Representation zu spezifizieren
- Entsprechende Error Codes verwenden
Welche zwei traditionelle Authentisierungs Methonde gibt es für APIs?
HTTP Basic Authentication
SSL Client Authentication
Wo wird das Login für Basic Authentication konfiguriert?
Auf dem Webserver. zB mittels .htaccess file
Wie werden die Credentials bei Basic Authentication übermittelt? Sind diese ausserdem verschlüsselt?
Beispiel: User: john, passwort:password -> john:password --> BASE64Encode -> am9objpwYXNzd29yZA==
Dieser String kann nun im Auhthorization hinzugefügt:
Authorization:Basic am9objpwYXNzd29yZA==
Ausserdem wird das Passwort Plaintext BASE64Encoded übermittelt. Daher TLS zwingend nottwendig
Wie unterscheiden sich Access Token von Username/Passwort?
Access Token haben eine grössere Entropy und haben sind somit schwieriger zum raten.
Die Tokens kann man mit bestimmten Rollen (nur bestimmte Rechte haben)ausstatten und können ausserdem revoziert werden.