Wat we gaan bouwen
We gaan een eenvoudige REST API bouwen die taken voor het maken, lezen, bijwerken en verwijderen van een product resource
afhandelt. Laten we eens kijken naar onze endpoints
- GET /products – Alle productbronnen ophalen
- POST /products – Een nieuwe productbron aanmaken
- GET /product/{id} – Een productbron ophalen op id
- PUT /product/{id} – Een productbron bijwerken op id
- DELETE /product/{id}- Verwijder een product resource op id
Database en Migraties
Laten we ons migratie bestand maken. Voer het volgende commando uit:php artisan make:migration create_products_table
Dit zal een nieuw migratiebestand voor u aanmaken in de database/migrations
directory. Ons product resource
zal de volgende attributen hebben, name
, price
en description
.
Voeg de volgende code toe aan het nieuw aangemaakte migratiebestand.
Bewerk .env
met uw database
-configuraties en voer dan het volgende commando uit om de migratie uit te voeren. php artisan migrate
Opstellen van ons productmodel
U bent misschien al gewend om models
en controllers
op te stellen via artisan
-commando’s in Laravel, maar helaas ondersteunt Lumen deze commando’s niet. Om een lijst met beschikbare artisan
commando’s in Lumen te zien, voert u uit:php artisan
Navigeer naar de app
directory en maak een nieuwe model
genaamd Product.php
In tegenstelling tot Laravel, laadt Lumen Eloquent en Facades in eerste instantie niet. Om ze te kunnen gebruiken, moeten we de volgende regels code verwijderen uit app\bootstrap.php
$app->withFacades();
$app->withEloquent();
Controller Methods
Laten we onze controller
maken. Navigeer naar de app\Http\Controller
directory en maak een ProductController.php
bestand. Voeg de volgende code toe aan de controller
die u zojuist hebt gemaakt.
-
index
-methode retourneert alle beschikbare producten als eenJSON
-respons. -
create
-methode maakt een nieuweproduct
en retourneert de nieuw gemaakteproduct
als eenJSON
-respons. -
show
-methode retourneert een enkele productbron met zijnid
. Dit wordt ook geretourneerd als eenJSON
response. -
update
method werkt een enkele product resource bij door zijnid
ook. -
delete
method verwijdert een product resource door zijnid
en retourneert eensuccess
bericht.
Routes
Het is tijd om eindelijk onze routes
toe te voegen. Open het bestand web.php
in de map routes
en voeg de volgende code toe:
We definiëren onze routes
groep en voegen de prefix
api/v1
toe omdat het een gemeenschappelijke parameter is die door al onze URIs
Tip: Maak gebruik van Prefix om gemeenschappelijke parameters op te geven voor uw gegroepeerde routes
Seeding our Database
Voordat we beginnen met het testen van onze endpoints
, laten we eerst wat voorbeeldgegevens maken om mee te werken. Laten we beginnen met het aanmaken van onze seed
. Voer in:php artisan make:seed ProductsTableSeeder
Dit maakt een ProductsTableSeeder.php
-bestand aan in de database/seeds
-directory. Bewerk het bestand met de volgende code:
Werk vervolgens het DatabaseSeeder.php
-bestand in de database\seeds
-directory met de volgende code:
We gaan gebruikmaken van Laravels Model Factory en de Faker-bibliotheek om de voorbeeldgegevens te genereren. Navigeer naar de database\factories
-directory en voeg de volgende code toe aan het ModelFactory.php
-bestand.
Uitvoeren:php artisan db:seed
Dit zal een aantal dummygegevens voor ons aanmaken in onze database
.
Testen van onze API
We gaan gebruikmaken van Postman om onze API te testen. U kunt hier meer lezen over aan de slag gaan met Postman.