RESTful API (PHP + MySqli)

mysql
php

(Alex Mieila) #1

Buna seara, de curand am inceput sa fac documentatie in privinta RESTful APIs si CRUD. Am inteles cat de cat de ce am nevoie de ele si cand se folosesc. Intrebarea mea este adrestata astfel:

De unde as putea invata mai mult si cum sa le folosesc in ceva proiecte basic, ceva actiuni CRUD. Nu am gasit nimic sau nu stiu cum sa caut exact, pentru php si mysqli, tot ce gasesc este PDO.

Multumesc frumos!


(cosmos) #2

CRUD se refera la

  • create
  • read
  • update
  • delete

Toate aplicatiile care au in spate o baza de date fac aceste actiuni cu datele pe care le primesc

REST vine de la Representational State Transfer si se refera la un stil arhitectural de realizare al serviciilor web. Defineste si constrangeri

Rest se foloseste de protocolul HTTP si de verbele acestuia, GET, POST, PUT, DELETE. Mai multe despre REST poti gasi (destul de abstract probabil) in teza lui Roy Fielding

Intr-un api rest poti accesa o resursa prin url, ca si cum ai accesa o pagina web. Datele sunt, in cele mai multe cazuri in format json, dar se mai foloseste si xml.

Ideea REST-ului este de a folosi mecanismele pe care un browser le foloseste cum ar fi:

  • protocolul http si mai nou https
  • ideea de header
  • content negotiation
    precum si altele

Rolul serviciilor web (si al unui api rest) este de a asigura ceva ce se cheama interoperabilitate intre doua aplicatii diferite care pot rula in medii diferite scrise in limbaje de programare diferite.
Un api rest este o metoda simpla pt a realiza acest lucru. Mi sunt si servicii web soap based precum si altele mai complicate si mai urate. Este o intreag teorie despre acest lucru

PDO este o extensie pt acces la orice baza de date (sql server, mysql, postgre) si cel putin in php cica este recomandat sa folosesti pdo. Are multe beneficii

Acele tutoriale iti arata cum sa te conectezi la o baza de date, sa faci query-uri si s expui raspunsul in format json. In php exista functiile json_encode si json_decode.

O alta aplicatie poate consuma api-ul tau.


Forumul acesta foloseste platorma Discourse. Partea de prezentare (interfata) este realizata cu EmberJS caare consuma un json sevit din backend. Poti vedea acest lucru daca te deconectezi de la internet. Daca vei incerca sa intri pe forum ar trebui sa primesti o eroare care specifica, ca nu s-a putut incarca ā€œhttps://devforum.ro/latest.json?order=defaultā€
Acest json este consumat de front-endul aplicatie care iti randeaza interfata forumului. Cu thread-uri, butoane de like, raspuns, etc. Exact ce vezi pe monitor

Desi nu stiu daca este chiar un api (nu stiu cum lucreaza Discourse) cred ca este un exemplu cat de cat ok pt a intelege.

Sper ca abereala mea te-a ajutat cat de cat sa intelegi despre ce este vorba

Un alt exemplu de aplicatie care consuma un api rest este aceasta Este facuta de mine si consuma un api-ul APIXU pt informatii meteo. Am facut-o cu vue, desi nu prea se vede :))


Ca exercitiu poti sa faci un mic api. Cu operatiile de mai sus. Cauta un tutorial pe crae il intelegi si spor la treaba. Aditional, poti incerca sa faci o aplicatie cu care sa il consumi (sau un site)

Keep it simple for now :slight_smile:

Succes !

Daca mai ai intrebari acum sau pe parcurs, baga mare :smiley:


(PƮrvan Marian) #3

Tie iti lipseste perseverenta , rabdarea sau pur si simplu trebuie sa fi lovit de probleme.
Daca ai fi urmat instinctiv niste tutoriale de php ai fi stiut ce mysqli este deapreciat si se recomanda pdo ca si drive de sql.
Eu iti sugerez sa cauti mai mult, eu iti pot zice de unde am invatat eu candva pdo, mysql si php plus cel mai bun exemplu de rest api dar nu stiu cat te ajuta.


(Alex Mieila) #4

Multumesc frumos pentru sfaturi, m-am luminat :slight_smile: Am inteles in mare parte ce trebuie facut acum si de unde sa incep.
Pana acum nu am lucrat Web, de curand am inceput sa invat cu ce se mananca.

O seara buna iti doresc!


(Alex Mieila) #5

Multumesc pentru raspuns, probabil sunt lovit si de probleme, dar incerc sa aloc cat mai mult timp facand documentatie si implicit, ceea ce imi place. Tutoriale am urmat, dar aveam nevoie de cineva sa explice cum a explicat @Cosmin_Popescu si sa ma lumineze. Imi cer scuze daca am deranjat cu aceste intrebari.

Seara buna!


(PƮrvan Marian) #6

Nu ai deranjat, doar ca trebuie sa ai rabdare si sa exersezi , asta inseamna sa fi lovit de "probleme"sa intelegi in timp ce inseamna.Si eu am urmat multe tutoriale.