Jednoduché API ve frameworku Slim 4 – č. 1 Instalace
Vytvoříme si jednoduché API ve frameworku Slim 4. Instalaci Slim 4 pomocí composeru
1 |
composer require slim/slim:"4.*" |
Jednoduché API ve frameworku Slim 4
Vytvoříme si jednoduché API ve frameworku Slim 4. Instalaci Slim 4 pomocí composeru
1 |
composer require slim/slim:"4.*" |
Takže v dalším dílu bychom si naše API rozšířili o základní CRUD operace. Minule jsem provedli základní instalaci frameworku a vytvoření jednoduchého endpointu pro ověření správného výstupu ve formátu JSON. Dnes bychom si API rozšířili o základní CRUD operace.
Takže API sice máme, ale naplácáno v jednom souboru a s daty napevno vloženými. Dnes si uděláme nějakou reálnější a použitelnější strukturu naší aplikace a zároveň si aplikaci připojíme k databázi.
Pro testování našeho API na lokálním zařízení můžete použít aplikaci např. Postman nebo Insomia. V příkazové řádce se dá použít třeba curl . Ja použiji aplikaci HttPie.
Naše API funguje, ale můžeme zkusit ještě vylepšit, třeba si přidáme validaci vstupních, přidáme prepared statement po práci s databází
Takže zatím máme všechne kod pro naše API v UserControlleru. Bylo by fajn z controlleru vyčlenit kod pro práci s databází do samostanýcj tříd. Možností je vícero já jsem zvolila vytvoření Modelu a Repository. Takže v adresáři src si vytvoříme dva adresáře Models a Repositories.
Naše API již se má čile k světu, co se mi ale dál neíbí a zasloužilo by upravit je validace vstupních dat v controlleru. Bylo by lepší a přehlednější ji vyčlenit do samostané třídy. Takže si vytvoříme další adresář Validators a v něm novou třídu pro kontrolu vstupních dat
Aby naše API nebylo tak chudé doplníme si je o nové endpointy pro produkty. Nejprve si ale ještě provedeme malý refaktoring. Co se mi na API nelíbí je definice roue v hlahním souboru. Routu bude asi přibývat a líbili by se mi, kdyby byl v nějakém samostatném souboru.
Aby mělo naše API konkrétní smysluplné použití přidáme si ještě endpointy ve kterých budeme jednotlivým uživatelům přiřazovat jejich nakoupené zboží. Nejprve musíme přidat tabulku do naší databáze, která bude sloužit k uložení vazeb mezi produktem a uživatelem
A je to tady kruciální část našeho API. Samozřejmě, že jako v každé aplikaci i tady budeme chtít některé funkce našeho API omezit jen pro ověřené uživatele. Tedy např. výpis produktů, které patří konkrétnímu uživateli se asi měli zobrazit pouze tomuto uživateli. Takže se do toho pustíme. Nejprve tedy každému uživateli přiřadíme heslo. Takže v databázi si vytvoříme slupec pro heslo.