Jednoduché REST API pre správu zariadení a ich pingov postavené na Laravel 13.
- PHP 8.3+
- Composer
- MySQL alebo PostgreSQL (lokálne)
- Docker a Docker Compose (voliteľné)
| Metóda | Endpoint | Popis |
|---|---|---|
POST |
/api/devices |
Vytvorenie zariadenia |
GET |
/api/devices |
Zoznam zariadení |
GET |
/api/devices/{uuid} |
Detail zariadenia |
POST |
/api/devices/{uuid}/ping |
Uloženie pingu |
Interaktívna OpenAPI dokumentácia so Swagger UI rozhraním je dostupná na:
http://localhost:8000/api/documentation
Poznámka: Otvorte
/api/documentation, nie/docsani/docs?api-docs.json— tie vracajú surový JSON bez vizuálneho rozhrania.
Swagger UI zobrazí prehľadnú webovú dokumentáciu:
- nadpis Device Ping API a popis
- sekcia Devices so zoznamom endpointov
- farebné HTTP metódy (
GETmodrá,POSTzelená) - po rozkliknutí endpointu: parametre, request body, odpovede
- tlačidlo Try it out na priame volanie API z prehliadača
V .env môžete upraviť:
L5_SWAGGER_UI_DOC_EXPANSION=list # list | full | none
L5_SWAGGER_UI_DARK_MODE=false # true = tmavý režimVygenerovanie dokumentácie:
php artisan l5-swagger:generateV lokálnom prostredí sa dokumentácia regeneruje automaticky (L5_SWAGGER_GENERATE_ALWAYS=true v .env).
composer installcp .env.example .env
php artisan key:generateUpravte databázové nastavenia v .env:
MySQL:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=be
DB_USERNAME=root
DB_PASSWORD=PostgreSQL:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=be
DB_USERNAME=postgres
DB_PASSWORD=php artisan migratePre rýchle manuálne testovanie API alebo Swagger UI:
php artisan db:seedVytvorí zariadenie Sensor 01 s ukážkovým pingom (battery_percent: 85).
php artisan test --compactTesty používajú SQLite in-memory databázu (nastavenú v phpunit.xml), takže nie je potrebná samostatná testovacia databáza.
php artisan serveAPI bude dostupné na adrese http://localhost:8000/api.
cp .env.example .envPre Docker nastavte v .env:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=be
DB_USERNAME=be
DB_PASSWORD=secretdocker compose up -d --builddocker compose exec app php artisan migrate
docker compose exec app php artisan db:seeddocker compose exec app php artisan test --compactAplikácia beží na http://localhost:8000.
curl -X POST http://localhost:8000/api/devices \
-H "Content-Type: application/json" \
-d '{"uuid":"550e8400-e29b-41d4-a716-446655440000","name":"Sensor 01"}'curl -X POST http://localhost:8000/api/devices/550e8400-e29b-41d4-a716-446655440000/ping \
-H "Content-Type: application/json" \
-d '{"battery_percent":85}'curl http://localhost:8000/api/devices/550e8400-e29b-41d4-a716-446655440000curl http://localhost:8000/api/devicesapp/Models/– Eloquent modelyDeviceaPingapp/Http/Controllers/Api/– API controllerapp/Http/Requests/– FormRequest validácieapp/Http/Resources/– API Resource triedydatabase/migrations/– databázové migráciedatabase/seeders/– demo dáta pre lokálny vývojtests/Feature/DeviceApiTest.php– feature testy APItests/Feature/DeviceSeederTest.php– testy seedera