Jucărie nouă: graphql!

Jucărie nouă: graphql!

Bine, nou este un mod de a spune, că este „pe piață” de ani de zile, dar până acum nu am avut nevoie. Fac un mock pentru o aplicație și am nevoie de un API, deci am făcut ce era normal: am folosit json-server pentru niște endpoint-uri pe care puteam să-mi testez codul.

Și am ajuns într-un punct mort, unde ar fi trebuit să trimit parametri în URL, ca sălbaticii. Yuck!

Și un amic îmi zice de graphql! Auzisem eu câte ceva despre el, dar niciodată nu aș putea spune că a fost nevoie de așa ceva.

Bă băiatule, este senzațional! Câteva idei la o primă vedere:

  • Îmi place că are data types, astfel încât poți fi sigur tot timpul de formatul datelor;
  • Îmi place că pot forța o anumită valoare pentru un câmp, astfel încât pot fi sigur că am ceva acolo (și nu mai este nevoie să fac verificări de genul if( data.title ) {...}.
  • A trebuit să regândesc un pic datele (încă nu-mi dau seama cum se servește un obiect {key:value};
  • Este nevoie să specific toate câmpurile ce le vreau de la api. Dacă un request REST de forma /posts/1 îmi întorcea tot ce luam din DB, un request de forma post(id:1){} îmi întoarce… nimic. Trebuie să specific: post(id:1){ id title author }. Nu sunt foarte sigur că e bine sau rău, e… diferit.

Rămâne de văzut cum se integrează și pe backend și cum dezvoltăm mai departe.

Un Comentariu

StefanZ a scris

– `încă nu-mi dau seama cum se servește un obiect {key:value};` … stai, ce? Cred ca te duci in directia gresita

– `Este nevoie să specific toate câmpurile ce le vreau de la api`… pai asta e si ideea GraphQL, nu ti mai da serverul tot ce are el, cere clientul fix ce are nevoie, fara sa-ti mai ‘polueze’ raspunsul cu date inutile pe care clientul nu le foloseste la momentul respectiv

Adaugă un comentariurăspuns pentru

Poți adăuga bucăți de cod folosind [code]codul tău aici[/code], [js][/js], [php][/php] etc.

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter