Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Zkrácení procesu vývoje API

Aktivity
Avatar
deleted
Člen
Avatar
deleted:27.12.2018 15:31

Zdravím,

jsem PHP programátor a nedávno jsem začal s API. Používám Laravel. Při přidání nové funkcionality jde obyčejně o docela repetitivní proces:

  1. Migrace - vytvoření sloupců v databázi pro data
  2. Factory - tu využívám stejné sloupce, jen do nich vložím "dummy data"
  3. Seeder - zavolám si factory
  4. Model - Tu většinou nedělám v podstatě nic, jelikož Eloquent má dost powerful nástroje
  5. Controller - RESTful routy, stále to samé dokola... Response přes Fractal
  6. Transformer - Zase vypisuji ty samé sloupce jako v migraci a factory pro JSON výstup...
  7. Vytvořit routes pro CRUD - tu se v Laravelu jedná o jeden řádek, tak to není tak hrozný (methoda apiResource)
  8. Otestovat

Zkusil jsem: Zkoušel jsem si vytvořit package s nástroji, které bych mohl dědit (Controller s automatickými metodami index, show, store, update a destroy), atp...

Chci docílit: Kód je obyčejně dost podobný, ne-li funkcionálně stejný, jen se mění pole v databázi a data. Existuje nějaký již zavedený způsob automatizace těchto záležitostí?

 
Odpovědět
27.12.2018 15:31
Avatar
Odpovídá na deleted
Martin Štěpánek :27.12.2018 18:36
  1. Nevím jak to má Laravel, ale většinou fw mají nástroje pro generování migrací, controllerů atd (já dělám v Yii2), pokud Laravel žádné nemá, tak si můžeš nějaké napsat.
  2. Pokud opravdu je kód hodně podobný, tak vždy jde naprogramovat nějaký configurable object, který pak použiješ na více místech. Pokud například všude pro každou entitu v db máš endpoint pro vytvoření této entity, tak můžeš udělat object, který se o tento endpoint bude starat. Pak mu můžeš v konfiguraci předávat název objektu, který má vytvořit a on už sám může načíst data (post/get), vložit je do modelu a nechat model zvalidovat.
Nahoru Odpovědět
27.12.2018 18:36
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
deleted
Člen
Avatar
Odpovídá na Martin Štěpánek
deleted:27.12.2018 18:48

Ano, Laravel má generátory, které generují kostru, do které se pak dají zapsat data. Zkoušel jsem si udělat nástroj, který generuje controller metody, factory, validatory atp... z modelu, který napíšu jen jednou. Jen mě překvapuje, že Laravel podobné nástroje nemá. Díky za odpověď.

 
Nahoru Odpovědět
27.12.2018 18:48
Avatar
Odpovídá na deleted
Patrik Valkovič:27.12.2018 21:12

Laravel má generátory v artisanu. Pokud se ti skutečně mění jen pár věcí, tak si napiš třídu která bude používat atributy potomka a pokaždé z ní jen vytvoř potomka. Poté si můžeš napsat vlastní command, který ti automaticky vygeneruje seedy, migrace atd.

Nahoru Odpovědět
27.12.2018 21:12
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.