Iako sam ranije već objavio jedan sličan blog post pod nazivom “Izrada RESTful API-ja koristeći Node.js i Express.js” sada ću obraditi nešto slično za što vjerujem da bi vam moglo biti jednostavnije i brže za napraviti.
U najvećem broju slučajeva kada počnete raditi na novom projektu u nekoj novoj tehnologiji napravit ćete CRUD aplikaciju, a kako bi to bilo moguće potreban vam je API s podacima. Tu u priču ulazi JSON Server.
JSON Server je npm paket i sve što uz njega trebate je obična JSON datoteka.
Instalacija
JSON Server možete instalirati globalno (u ovom primjeru koristim globalnu instalaciju)
1 |
$ npm install -g json-server |
ili lokalno
1 |
$ npm install -D json-server |
Više o npm-u možete saznati u službenoj dokumentaciji.
Nakon instalacije provjerite jeste li ispravno instalirali JSON Server json-server -v. Ako jeste možete krenuti na sljedeći korak.
JSON datoteka
Ako već nemate pri ruci nekakvu JSON datoteku možete napraviti nešto slično ovome. Znači, imamo primjer imenika koji se sastoji od tri objekta. Datoteka neka se zove db.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "Imenik": [ { "id": 1, "ime": "Ivan Ivanović", "telefon" : "0038501555444" }, { "id": 2, "ime": "Mate Matić", "telefon" : "0038501555333" }, { "id": 3, "ime": "Pero Papar", "telefon" : "0038501555222" } ] } |
Pokretanje JSON Servera
Pokrećemo ga koristeći naredbu
1 |
$ json-server --watch db.json |
I kao što se može vidjeti API je pokrenut na adresama
1 2 3 |
http://localhost:3000/ http://localhost:3000/db http://localhost:3000/imenik |
CRUD operacije
I napokon se možemo prebaciti na ono zbog čega smo ovdje. Za potrebe pozivanja API-ja koristit ćemo Postman.
1 2 3 4 |
[GET] http://localhost:3000/Imenik [POST] http://localhost:3000/Imenik [PUT] http://localhost:3000/Imenik/id [DELETE] http://localhost:3000/Imenik/id |
GET
POST
PUT
DELETE
Zaključak
Sve gore navedeno su samo osnovni primjeri. Više o ostalim, naprednijim, mogućnostima potražite u službenoj dokumentaciji.
Jedna misao o “Kako napraviti REST API koristeći JSON Server”