Tredun ohjelmistokehittäjien kurssimateriaaleja
Frontendin ja backendin välillä on ohjelmointirajapinta eli API (Application Programming Interface). Web-palvelut rakennetaan yleensä REST-rajapintaa käyttäen (Representational State Transfer). REST käyttää HTTP-protokollaa, data lähetetään JSON-muodossa ja resursseihin viitataan URI:en avulla (Uniform Resource Identifier).
REST:in toiminta perustuu siihen, että tietyillä HTTP-metodeilla saadaan aikaan tiettyjä toiminnallisuuksia:
REST-pyynnöt osoitetaan tiettyyn osoitteeseen. REST:in osoitteet on tarkoitettu helposti ymmärrettäviksi esim. http://myshopping.example.com/customer/23/orders/2, palauttaa asiakkaan nro 23 tilauksen nro 2.
REST-pyyntöjen tulee palauttaa järkevä HTTP-paluuarvo. Niitä ei tule keksiä itse, vaan jokaiselle tilanteelle oma standardin mukainen koodinsa.
Koodi | Kuvaus | Käyttö |
---|---|---|
200 | OK | Pyyntö onnistui |
201 | Created | Uusi resurssi luotiin onnistuneesti |
202 | Accepted | Pyyntö hyväksyttiin mutta sen suorittaminen kestää |
204 | No content | Pyyntö onnistui, mutta paluuarvoa ei lähetetä |
301 | Moved permanently | API on muuttunut ja pyyntö ohjataan uuteen osoiteeseen |
400 | Bad request | HTTP pyyntö on ollut puutteellinen |
401 | Unauthorized | Resurssin käyttö vaatii kirjautumisen |
403 | Forbidden | Suojattua resurssia on yritetty käyttää |
404 | Not found | Resurssia ei löydy |
500 | Internal server error | Palvelin virhe, josta ei voi toipua |
Mallinnamme yksinkertaisen verkkokaupan tietokannan:
Metodi | URI | JSON server esimerkki | Kuvaus |
---|---|---|---|
GET | products | http://localhost:3001/products | Paluttaa kaikki tuotteet |
GET | products/:id | http://localhost:3001/products/1 | palauttaa tietyn tuotteen tiedot |
GET | customers/:id/orders | http://localhost:3001/customers/2/orders | palauttaa tietyn asiakkaan kaikki tilaukset |
GET | orders/:id | http://localhost:3001/orders/3 | palauttaa tietyn tilauksen tiedot |
POST | customers | http://localhost:3001/customers | lisää uuden asiakkaan tiedot, annetaan JSON-muodossa |
POST | orders | http://localhost:3001/orders | lisää uuden tilauksen tiedot, annetaan JSON-muodossa |
PUT | orders/:id | http://localhost:3001/orders/3 | muuttaa tilauksen sisältöä, esim. status kenttää, annetaan JSON-muodossa |
DELETE | orders/:id | http://localhost:3001/orders/3 | poistaa tilauksen |
JSON serverin avulla voidaan toteuttaa yksinkertainen REST-API. Se tallentaa resurssit json-tiedostoon.
Tallenna tämä valmis resurssimäärittely tiedostoon db.json.
Asenna ja käynnistä JSON-serveri:
npx json-server --port=3001 --watch db.json
REST-rajapinnan testaaminen vaatii REST-client:in. Yksi sellainen on Postman. Asenna postman ja testaa fanikaupan API:a sen avulla.
Postman:ia voi käyttää ilman tilin luomista mutta tilin avulla voidaan tallentaa API-kutsut, annetut parametrit sekä esimerkit palautuneesta datasta. Tätä voi käyttää eräänlaisena API-dokumentaationa projektityöskentelyssä.
Jotta voit tallentaa HTTP-kutsut luo ensin collection. Tee kutsut ja paina save response ja save as example. Lopuksi valitse share collection ja collection link.