VivesCommerce is een API-backend voor de uitrol van een applicatie waarmee je online kunt shoppen. Om te starten werd een basis opgezet met een aantal migrations, modellen en controllers. Sommige endpoints functioneren ook al correct, andere endpoints moeten door jou nog worden voorzien.
Hieronder vind je een overzicht van de belangrijkste modellen in onze Laravel API. Vul eventueel aan waar je dat nodig acht. Ontbreken hier bijvoorbeeld bepaalde modellen? Ontbreekt belangrijke informatie?
Model waarmee je de details van een gebruiker bijhoudt. E-mailadres, wachtwoord & gebruikersnaam zijn de belangrijkste.
Eenvoudig model waarmee we de producten aanspreken in onze database.
Het moet in onze applicatie mogelijk zijn om bestellingen te plaatsen. Via de API moet het mogelijk zijn om een nieuwe bestelling aan te maken. Aan die bestelling moet je ook telkens producten kunnen toevoegen.
Gebruikers kunnen reviews toevoegen en consulteren.
Endpoint | Verb | Werking |
---|---|---|
/getusers | GET | Geeft een lijst van alle users in de database. |
/postuser | POST | Laat je een nieuwe user toevoegen aan de database. |
/updateuser | PATCH | Laat je op basis van een mailadres de gegevens van een user aanpassen. |
/deleteuser | DELETE | Op basis van het mailadres kun je een user verwijderen. |
/getorders | GET | Geeft een lijst van alle orders in de database. Als er een mailadres is opgegeven retourneer je enkel de orders van die gebruiker. |
/postorder | POST | Laat je een nieuwe bestelling toevoegen aan de database. |
/updateorder | PATCH | Op basis van het orderID kun je een bestelling wijzigen. |
/deleteorder | DELETE | Op basis van het orderID kun je een bestelling verwijderen. |
/getreviews | GET | Geeft een lijst van alle reviews in de database. Als er een productID is opgegeven retourneer je enkel de reviews van dat product. |
Onderzoek hoe je je API-endpoints kunt beveiligen (Laravel Sanctum). Hoe kun je deze oplossing integreren in je API-server? Pas die oplossing ook toe.
Om overbelasting van je API-server te voorkomen kan het interessant zijn om throttling toe te passen. Onderzoek wat dit precies is en hoe je dit kunt integreren in je API server. Pas je oplossing toe.
- Zorg ervoor dat de boilerplate-code in deze repo correct functioneert op jouw systeem. Voer de migrations ook uit.
- Controleer of alle endpoints correct functioneren. Voeg ontbrekende endpoints toe en wijzig foutieve endpoints.
- Test alle endpoints uit door gebruik te maken van Postman.
- Denk na over de beveiliging van onze API endoints. Welke endpoints moeten beveiligd worden? Welke mogen publiek beschikbaar zijn?
- Voor je begint denk je na welke data een endpoint moet terugsturen. Volstaat een simpele '200 - OK' of is er meer data nodig? Waarom?
Open WSL
CMD: wsl -d Ubuntu
Navigeer naar je home folder: cd ~
Kloon de repo in die map: git clone https://github.com/centiveo/app-week5.git
Rechten filesystem instellen:
Vendor map aanmaken: mkdir vendor
sudo chmod -R 775 ~/app-week5/vendor/ sudo chown -R $USER:$USER ~/app-week5/vendor/
sudo apt install php-xml sudo apt install php-curl
De vendor map is nu nog leeg. Installeer de nodige packages: composer update
Start sail
Je krijgt nu nog een error op je scherm. Dat komt omdat er geen key is ingesteld. Je kunt dat doen door onderstaand commando uit te voeren: ./vendor/bin/sail artisan key:generate