Príklady
Každý príklad je malá Nette aplikácia v examples/. Jej e2e.sh spustí vstavaný PHP server a curl-om skontroluje každú odpoveď; CI ich všetky spúšťa proti aktuálnemu kódu knižnice.
git clone https://github.com/tomaj/nette-api.git
cd nette-api/examples/hello-world
composer install
./e2e.shVerzia knižnice
Príklady vyžadujú tomaj/nette-api ^3.6, takže composer install nainštaluje posledné vydanie 3.x. Niektoré používajú funkcie pridané vo verzii 3.6.0, napríklad maskované hlavičky v príklade Logovanie a chyby.
Ak chcete príklad spustiť proti lokálnemu klonu ako CI, použite z koreňa repozitára examples/ci/example.sh hello-world.
- Hello worldJeden GET endpoint, najmenšie funkčné nastavenie.
- Parametre a validáciaQuery parametre, povolené hodnoty, viac hodnôt a JSON telo so schémou.
- Autorizácia a obmedzenie požiadaviekBearer token, API kľúč, HTTP Basic a 3 požiadavky za minútu.
- CORSPevný origin a preflight pre frontend v prehliadači.
- OpenAPI a konzolaOpenAPI JSON a YAML, zoznam endpointov, webová konzola, {apiLink}.
- Logovanie a chybyLog požiadaviek s maskovanými hlavičkami (potrebuje 3.6.0), vlastný error handler, produkčný režim.
- Vlastná autorizáciaVlastný ApiAuthorizationInterface s rolami, používateľ v handleri, token alebo API kľúč.
- JSON a surové teloJSON telo overené schémou a CSV telo.
- Nahrávanie súborovJeden aj viac súborov, overená veľkosť a skutočný typ.
- StránkovanieTypované parametre stránky, povolené hodnoty, odkazy, výstup pre každý kód.
- Verzie APIv1 a v2 jedného endpointu, hlavičky zastarania, OpenAPI pre každú verziu.
- Obmedzenie požiadaviekVlastný RateLimitInterface, 3 požiadavky za hodinu na kľúč, vlastná 429.
- TestovaniePHPUnit testy handlera, parametrov, výstupov a autorizácie.
Všetky príklady potrebujú PHP 8.3 alebo novšie a Composer. Ich composer.json požaduje tomaj/nette-api: ^3.6.
Časté otázky
Ktorým príkladom začať?
Hello world, potom tým, ktorý pokrýva funkciu, ktorú potrebujete.
Používajú príklady databázu?
Nie, dáta sú v pamäti alebo v súboroch, takže jediné nastavenie je composer install.
Môžem príklad skopírovať ako základ?
Áno, konfigurácia, router a bootstrap tvoria kompletnú aplikáciu. Čo ktorá časť robí, vysvetľuje Začíname.
Ako ich testuje CI?
examples/ci/example.sh NAME skopíruje projekt, nasmeruje Composer na checkoutnutú knižnicu a spustí e2e.sh.
Ktoré porty používajú?
8081 až 8087 a 8090 až 8096, jeden na príklad (logovanie a chyby používa dva), takže môžu bežať vedľa seba.