Jednoduché API ve frameworku Slim 4 – č. 5 Vylepšení UserControlleru
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í
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í
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.
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.
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.
Vytvoříme si jednoduché API ve frameworku Slim 4. Instalaci Slim 4 pomocí composeru
1 |
composer require slim/slim:"4.*" |
Spravuji malý obchod českého výrobce punčochocého a ponožkového zboží . Do září 2017 byl provozován na verzi 1.4.3, doba pokročila a odhodlala jsem se k upgradu na verzi 1.6 konkrétně 1.6.1.16, a to zejména kvuli responsivite šablony. Abych si celý proce usnadnila použila jsem originál modul 1-click Upgrade. Zálohu celého e-shopu jsem si udělal předem, při ugradu jsem zvolila přepnutí na default šablonu, která používá Boostrap. Pro začátek jsem si řekla , že použiji defaultní šablonu. Jaké bylo ovšem mé překvapení,…
Kdyby někdo potřeboval výpomoc formou brigády, nejraději ve fw Laravel. Tak se mi ozvěte.
Dneska jen takové miniaturní vylepšení po přidání zboží do košíku si zobrazíme modla okno. Upravovat budeme pouze view home.blade.php a to konkrétně že si upravíme kod pro přidání zboží do košíku, kde si předáme název a cenu zboží.
Tak jsem se rozhodla , že e-shop si vylepším o přidání do košíku ajaxem. Aby bylo možné použít ajax POST s Laravelem je nejpreve nutné ,aby byl předán s ajaxovým požadavek i csrf_token. Více najdeme jako vždy v dokumentaci X-CSRF_TOKEN Nejprve si upravíme master.blade.php do hlavičky přidáme
1 |
<meta name="csrf-token" content="{{ csrf_token() }}"> |
a také si zajistíme možnost přidat na konkrétní stránce javascritový kód. Takže na konec si přidáme
1 2 3 |
<script> @yield('scripts') </script> |
Nyní upravíme home.blade.php. Pro přidání zboží do košíku budeme používat
1 |
<a href="#" id="add" class="btn btn-primary" data-id="{{ $product->id }}">Koupit</a> |
a na konec souboru…
Pro lokální vývoj používám Linux Mint a na něm mám nainstalován web server Apache2. Pro intalaci frameworku Laravel je potřeba správně nastavit práva. Změnín si vlastníka
1 |
sudo chown -R username:www-data /var/www |
pak si ještě upravím práva
1 2 |
sudo find /var/www -type f -exec chmod 664 {} \; sudo find /var/www -type d -exec chmod 775 {} \; |
Pak ještě pro Laravel je potřeba správně nastavit práva pro zápis do některých jeho adresářů (obecně to může být i u jiných PHP skriptů, kde potřebujeme zapisovat)
1 2 |
sudo chgrp -R www-data storage bootstrap/cache sudo chmod -R ug+rwx storage bootstrap/cache |
komplexněji je to rozebráno a posáno na stackoverflow