Konferencia ZendCon má v Spojených Štátoch dlhoročnú tradíciu. Do Európy, konkrétne do Paríža, prišla táto dlho očakávaná akcia prvýkrát, a to s jasným cieľom – zaradiť sa medzi najväčšie renomované podujatia pre PHP developerov. Stretlo sa tu množstvo IT manažérov, vývojárov a špecialistov so záujmom o nové technológie. Bohatý program odborných prednášok, prezentácií, workshopov, ale aj osobných rozhovorov poskytol návštevníkom skvelú príležitosť učiť sa priamo od tých najlepších „hláv“ zo Zendu, Symphony, Googlu alebo Microsoftu.
Úvodná prezentácia od tých najväčších hráčov
Úvodná, obsahovo doslova nabitá prezentácia patrila spoluzakladateľovi Zend Technologies Andimu Gutmanovi. Predstavil aktuálne trendy a produkty, ktoré môžu PHP pomôcť efektívnejšie preraziť v enterprise sektore. Poukázal na to, ako sa zmenili požiadavky trhu a ako na ne Zend, ako aj iné firmy, reagujú. Zaujímavosťou bolo najmä efektívne využívanie Zend Server a Zend Framework 2, pri ktorom sa používa pojem „Agile delivery“. Dnes už nestačí Agile development, dôležitý je krátky iteračný proces pri nasadzovaní zmien.
Program konferencie bol rozdelený do 3 hlavných oblastí: API-Centric Architecture, Continuous Delivery a Cloud Flexibility & Scale. Podrobnejšie predstavím jednu z nich, API-Centric Architecture.
API-Centric Architecture
Každý PHP vývojár vie, čo je Service Layer alebo SOA, všakže ;). API-Centric Architecture predstavuje nový spôsob, ktorý už pri základnom návrhu zahŕňa myšlienku podpory viacerých platforiem a zariadení. Nejde len o návrh rozhrania pre webové aplikácie, ale aj rozhranie pre mobilné aplikácie pre Android, iOS, TV, Xbox atď., kde navrhujeme najskôr svoje API a potom všetko ostatné. Ak veríme štatistickým číslam, podľa ktorých až 91% z 5000 opýtaných PHP developerov používa PHP na tvorbu mobilného API, tak sa nad týmto prístupom určite oplatí vážne zamyslieť.
Príprava rozumného RESTful API je pomerne náročná úloha. Vyžaduje si naštudovanie neuveriteľného množstva štandardov, dôkladné premyslenie verzovania, spracovania chybových hlášok, statusov a vysporiadania sa s celým spektrom zariadení cez TV, mobile, tablety, Xbox, ale aj input filtrovaním, validáciou, atď.
V podstate sú dva štandardy, ktoré môžeme použiť pri tvorbe API, a to JSON-API a HAL.
Ak ste ešte neštudovali ani jeden z nich, pripravte si veľa kávy a 2 - 3 týždne dovolenky :).
Implementovať správne odporúčania a štandardy nie je vždy také jednoduché ako sa na začiatku môže zdať. Tu by som chcel odporučiť nástroj Apigility, ktorý na konferencii predstavil Matthew Weier O'Phinney. Apigility je síce nový, no momentálne najjednoduchší spôsob, ako vytvoriť profesionálne a kvalitné API za pár hodín. Jeho základnou pridanou hodnotou je, že:
- používa AngularJS + Bootstrap3 + HAL,
- podporuje verzovanie API dvomi spôsobmi – url versioning a content negotiation,
- podporuje OAuth 2 prihlasovanie,
- error handling,
- dodržiava best practices,
- opensource.
Ak sa chystáte do ďalšieho návrhu API, určite si predtým prečítajte niekoľko mojich rád:
- zabudnite na výhovorky typu „Ale ja neviem, ako sa moje API bude používať“,
- napíšte si, čo potrebujete a ako to budete používať – možno Scenerio Driven,
- začnite rovno s verzovaním, nikdy neviete, kedy sa vám to zíde,
- vytvorte si resource mapu,
- vygenerujte rewrite pravidlá,
- začnite rozmýšľať, ako napísať servisy,
- ... niekoľko hodín neskôr...,
- začnite písať svoje minimalistické volania servisov v controlleroch.
Prajem veľa trpezlivosti pri ďalšom návrhu :).