Danas na jelovniku u “ioox-studio” kuhinji imamo REST API. Radi se o CodeIgniter4 aplikaciji koja je povezana sa mariadb (mysql) bazom podataka. Aplikacija je bez PHP session-a i koristi JWT token za autentikaciju/autorizaciju. Osim ovoga gore koristimo Respect paketić za validaciju. Za testiranje sam koristio Resting ekstenziju koja je dostupna za Chrome/Firefox.

Rute sa ‘/’ na kraju nisu dozvoljene. Tako da npr. “https://api.ioox.studio/user/login/” nije ispravna ruta.

Projekt smo postavili ovdje:

https://api.ioox.studio

Za login se spajamo na rutu:

https://api.ioox.studio/user/login

Koristimo header:

"Content-Type":"application/json; charset=utf-8"

Kao “raw” body šaljemo:

{
"email":"ddd@mail.com",
"password":"12345678"
}

Ako je sve u redu, dobivamo odgovor:

{
  "statusCode": 200,
  "error": false,
  "msg": "Login successful.",
  "data": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VySWQiOiJiYmEzZmZiOS0zNGUyLTRhZjAtODkxMS0xOWZjZWJiYTUyZGEiLCJpYXQiOjE2NTc5NzA4NjcsImV4cCI6MTY1Nzk3NDQ2N30.6cyL3UdxxXbeafe6whnqYw3qlO3vwZK2eth9xF496lqcnxBAL6JZ1MyqPkWlTNCCJWxpjM3LL2TvTtqi5u6aIA"
}

“data” je JWT token. Proces registracije je isti samo što koristi “/register” rutu koju sam isključio.

Sada kada imamo token možemo koristiti “/post/” rutu. Ova nam ruta vrača sve postove. Dodajemo još jedanu liniju u zaglavlje zahtjeva:

"Authorization":"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJ1c2VySWQiOiJiYmEzZmZiOS0zNGUyLTRhZjAtODkxMS0xOWZjZWJiYTUyZGEiLCJpYXQiOjE2NTc5NzA4NjcsImV4cCI6MTY1Nzk3NDQ2N30.6cyL3UdxxXbeafe6whnqYw3qlO3vwZK2eth9xF496lqcnxBAL6JZ1MyqPkWlTNCCJWxpjM3LL2TvTtqi5u6aIA"

Za samo jedan post, pod id-em 1. šaljemo GET zahtjev na:

https://api.ioox.studio/post/delete/id/1

Za brisanje post-a pod id-em 1, šaljemo POST zahtjev na:

https://api.ioox.studio/post/delete/id/1

I na kraju za dodavanje post-a, šaljemo POST zahtjev na:

https://api.ioox.studio/post/add

Tijelo zahtjeva (raw body) mora biti ovog oblika:

{
	"title":"Hello world",
	"content":"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed doeiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation ullamco laboris nisi utaliquip ex ea commodo consequat. Duis aute irure dolor inre"
}

A u zaglavlju zahtjeva:

"Content-Type":"application/json; charset=utf-8"

Token vrijedi sat vremena.