HTTP aanvraag bestaat uit:
1. Eerste headerlijn
2. volgende headerlijnen
3. lege lijn
4. body (optioneel)
HTTP antwoord bestaat uit:
1. Eerste headerlijn
2. volgende headerlijnen
3. lege lijn
4. body (optioneel)
- Service (dienst) aanbieden via het web
(HTTP)
• Functionaliteit
• Data
- is een endpoint
REST = Representation State Transfer
,Architecturale beperkingen REST API (voorwaarden)
SUCCCG
Statusloos:
Uniforme interface:
gebruik http methodes: CRUD → POST, GET, PUT, DELETE
,Cacheable:
Client-Server:
Code op aanvraag(optioneel):
Gelaagd systeem:
- De client weet niet met welke laag hij geconnecteerd is
Level 0: Het moeras van pokken:
- HTTP enkel als transport
- één endpoint
Level 1: Bronnen
- Verschillende endpoints
- Argumenten in body
Level 2: HTTP-methoden
- HTTP-HTTP
- statuscodes in antwoord methodes als CRUD
Level 3: Hypermedia Controls:
- HATEOS: hypertext as the engine of application state
- Links naar andere bronnen in antwoord
- Selfdocumenting Protocol
, Spring:
is een Framework voor Professionele Java-programma’s
- JVM: container voor java objecten:
• Consoleprogramma’s
• Testen
• Webserver
• Databank
- Verschillende bibliotheken om sneller toepassingen te bouwen
Springboot:
om sneller projecten aan te maken → templates om nieuwe projecten te genereren
- veel configuratie vermijden
- Makkelijk afhankelijkheden beheren
Architectuur REST API in Spring:
1. Spring ontvangt een HTTP-request en bepaalt de juiste controller-methode
2. (Optioneel) De JSON-body wordt omgezet naar een object
3. (Optioneel) De input van het object wordt gevalideerd
4. De controller-methode wordt aangeroepen met het object
5. De controller roept de achterliggende logica aan
6. De logica communiceert met de datalaag
7. Het resultaat wordt geserialiseerd (bv. naar JSON)
8. Spring stuurt een HTTP-response terug met (optioneel) de JSON-body
Implementatie van REST: