Pagina principala » Codificare » Bazele de dezvoltare REST și RESTful API

    Bazele de dezvoltare REST și RESTful API

    Dezvoltatorii web vorbesc frecvent Principiile REST și arhitectura de date RESTful, deoarece este un aspect crucial al dezvoltării moderne, dar uneori poate fi incredibil de confuz. REST nu este o tehnologie în sine, ci mai degrabă o metodă de creare a API-urilor cu anumite principii organizaționale. Aceste principii sunt de a ghida dezvoltatorii și de a crea un mediu mai universal pentru procesarea cererilor API.

    În acest post, aș vrea să explic explicațiile practice ale RESTful de la o vedere de pasăre. Vreau să mă lupt ce mai degrabă decât Cum. Deși voi atinge ambele domenii, această postare este făcută pentru oricine este în dezvoltare web, dar pur și simplu nu poate înțelege conceptul de API REST.

    REST Pentru dezvoltatorii web

    Se numește acronimul REST Transferul de stat reprezentativ. Acest lucru poate părea oarecum confuz, iar intrarea wiki o face să fie și mai confuză. Dar este posibil să simplificăm terminologia.

    REST este doar o serie de liniile directoare și stilurile arhitecturale folosite pentru transmisia de date. Este frecvent aplicată aplicațiilor web, dar poate transmite și date către software.

    Acronimul API reprezintă Interfața de Programare a aplicațiilor, care sunt metode de conectarea la alte biblioteci sau aplicații. Windows are mai multe API-uri, iar Twitter are un API web, deși îndeplinesc diferite sarcini cu obiective diferite.

    Combinându-le împreună, API-urile RESTful sunt API-uri care urmează arhitectura REST.

    Ce anume este arhitectura REST?

    Aici este greu să stabilești specificul. Cu toate acestea, există câteva constante arhitecturale, cum ar fi:

    • consecvență în întregul API
    • Apărare fără stat, adică nu există sesiuni de server-side
    • Utilizarea de Coduri de stare HTTP acolo unde este cazul
    • Utilizarea de Obiectivele URL ale adresei URL cu o ierarhie logică
    • Versiunea în URL mai degrabă decât în ​​antetele HTTP

    Nu există instrucțiuni prea specifice, cum ar fi spec. W3C HTML5, care ar putea duce la confuzie și o miasma de incertitudine în jurul terminologiei REST.

    De asemenea, lista de mai sus nu ar trebui să fie considerate reguli grele și rapide, chiar dacă acestea sunt valabile pentru cele mai moderne API RESTful.

    IMAGINE: restful-api-design.readthedocs.io

    REST este a metodologia ușoară ceea ce îl face perfect pentru datele HTTP. Acesta este motivul pentru care REST a devenit atât de popular pe web, și de ce este considerat ca fiind cea mai bună alegere pentru dezvoltarea API.

    După cum îl pune Vinay Sahni, “un API este un interfață dezvoltată de dezvoltator.” Totul ar trebui să fie ușor de folosit și să ofere o experiență extraordinară pentru utilizatori. RESTful API urmăresc să facă exact acest lucru.

    Intrebari corecte pentru API-uri mai rapide

    Aceste sfaturi sunt în contextul API-urilor strict pentru aplicațiile web. Aceasta înseamnă că HTTP este o cerință, și adesea înseamnă asta datele API sunt găzduite pe un server extern. Să examinăm modul în care API-urile RESTful funcționează de partea utilizatorului API.

    Utilizatorul API este dezvoltatorul de web care poate construi un script care se conectează într-un server API extern, apoi datele necesare sunt transmise prin HTTP. Dezvoltatorul poate afișa date pe site-ul lor fără a avea acces personal la serverul extern (cum ar fi tragerea datelor Twitter).

    În general, există patru comenzi folosit pentru accesați API-urile RESTful:

    1. OBȚINE pentru recuperarea unui obiect
    2. POST pentru crearea unui obiect nou
    3. A PUNE pentru modificarea sau înlocuirea unui obiect
    4. ȘTERGE pentru a elimina un obiect

    Fiecare dintre aceste metode ar trebui să fie trecut cu apelul API pentru a spune serverului ce să facă.

    Marea majoritate a API-urilor web permite doar OBȚINE cereri pentru a extrage date de pe un server extern. Autentificarea este opțională, dar cu siguranță o idee bună atunci când permiteți comenzi potențial daunatoare cum ar fi A PUNE sau ȘTERGE.

    Cu toate acestea, nu multe API RESTful merg chiar până aici. Luați în considerare Pokéapi, care este o bază de date gratuită Pokémon API. Este deschis publicului cu o limitare a ratei decente (limitând utilizatorii la un anumit număr de solicitări API într-o perioadă de timp), dar permite doar OBȚINE metodă de accesare a resurselor. Aceasta poate fi numită în mod colocic a API numai pentru consum.

    Tipuri de retur sunt importante și ar trebui păstrează omogenitatea pentru toate resursele. JSON este un tip popular de retur cu specificații online care explică structurile de date adecvate.

    Utilizarea API-urilor mai rapide substantive pentru obiecte API, și verbe pentru efectuarea de acțiuni pe acele obiecte. Autentificarea poate face parte din acest lucru, limitarea ratei poate fi, de asemenea, o parte din acest lucru. Dar un API foarte simplu poate fi obținut fără prea multă îngrijorare față de limitările utilizatorilor.

    Accesarea resurselor API

    API-urile publice sunt de obicei accesibil de la adrese directe ale site-urilor web. Asta înseamnă structura URL este importantă, și ar trebui să fie utilizat numai pentru cererile API.

    Unele adrese URL pot include un director de prefix ca / V2 / pentru o versiune actualizată 2 a unui API anterior. Acest lucru este comun pentru dezvoltatorii care nu doresc să-și deprecieze API-ul 1.x, dar totuși doresc să ofere cea mai nouă structură.

    Mi-a plăcut cu adevărat acest post structuri URL de bază și exemple din alte servicii.

    Rețineți că este punctul final datele de retur se vor schimba dramatic bazat pe Metoda HTTP. De exemplu, OBȚINE returnează conținut, în timp ce POST creează conținut nou. Cererea ar putea indica același obiectiv, dar rezultatul ar putea fi foarte diferit.

    IMAGE: Reddit Documentația API

    Privind peste exemple on-line vă pot ajuta să înțelegeți conceptele mai clare. Am văzut deja Pokeapi, dar aici sunt alții exemple API din lumea reală pentru a citi:

    • Reddit API
    • GitHub API
    • API Flickr
    • Pinterest API

    Construiți propriul API

    Procesul de construire a propriului API nu trebuie luat ușor, dar nu este atât de complicat cum credeți. Nu este nevoie înțelegerea modelelor de design API și a celor mai bune practici pentru a construi ceva de valoare reală.

    Fiecare API trebuie conectați-vă la serverul dvs. pentru a returna date de un fel. Nu numai că aveți nevoie să scrieți codul pentru a face acest lucru, dar trebuie, de asemenea, să formatați datele de retur. Alte cerințe potențiale includ autentificare și limitare de rata, astfel încât construirea unui API nu este cu siguranță pentru cei slabi de inimă.

    Dar să aruncăm o privire câteva principii fundamentale de arhitectura API.

    Construiți puncte finale

    Un aspect al dezvoltării API este construirea punctelor finale. Cand crearea de resurse vrei să folosești substantive, nu verbe. Aceasta înseamnă că datele API ar trebui să returneze o persoană, un loc sau un lucru, cel mai adesea este un lucru cu atribute specifice (de exemplu un tweet și toate metadatele sale).

    Poate fi dificil să învățați să numiți substantive, dar acesta este un aspect crucial al dezvoltării API. Simplificarea este cea mai bună ori de câte ori este posibil.

    O mare dezbatere este singular vs. plural substantive. Dacă ați realizat un API Twitter, s-ar putea să aveți primul grup de obiecte (de ex., Tweet), apoi cel de-al doilea element al obiectului (adică tweet ID).

     $ / tweet / 15032934882934 $ / tweets / 15032934882934 

    În acest caz, aș susține că forma singulară arată mai bine. Acest lucru este valabil mai ales atunci când se restituie o singură resursă. Dar nu există nici un răspuns 100% corect documentat, așa că faceți tot ce se potrivește cel mai bine pentru proiectul dvs..

    Setați Tip retur

    O altă considerație este returnează datele de tip. Cei mai mulți utilizatori web așteaptă conținut JSON, deci este probabil cea mai bună opțiune. XML este o altă alegere dacă doriți să oferiți ambele. Cu toate acestea, JSON este tipul de returnare a API-ului fundamental printre dezvoltatorii web.

    Există mult mai mult în dezvoltarea API, așadar recomand să jucați mai întâi cu API-uri. În acest fel, puteți vedea cum alți dezvoltatori își construiesc API-urile și sperăm că veți cunoaște cerințele tipice.

    Dacă sunteți doar începutul, vă rugăm să luați în considerare skimming aceste tutoriale dev:

    • REST API Tutorial Site
    • Scrierea unui API simplu REST
    • Construirea unui serviciu Web RESTful

    Resurse suplimentare

    Cel mai bun mod de a învăța dezvoltarea aplicațiilor web este prin practică. Teoria acordată este întotdeauna merită studiată, deoarece vă permite să discutați cu dezvoltatorii și să înțelegeți cum funcționează lucrurile.

    Dar un loc bun pentru a începe cu dezvoltarea API este conectarea la alte API-uri primul. Aflați elementele de bază ale conexiunilor pe partea clientului și de acolo puteți trece la dezvoltarea API-urilor de pe server prin crearea propriului dvs. API de la zero.

    Dacă acesta este obiectivul dvs., luați în considerare următoarele resurse pentru a vă ajuta în călătoria dvs..

    Cărți

    • REST API Design Rulebook
    • Cele mai bune API-uri web
    • RESTful carte de servicii pentru Web
    • REST nereturnat: Un ghid pentru proiectarea API-ului perfect

    Articole

    • Ghidul începătorului pentru HTTP și REST
    • Crearea unui API RESTful
    • RESTful Ghid de numire a resurselor
    • Crearea unui API REST folosind stackul MEAN