mmt - service layer
In de traditionele n-tier terminologie speekt met hier van de business logic layer. Het verschil ligt hem hier in de manier waarop die business logica aan de gebruiker ervan (presentatie laag) wordt aangeboden. We spreken van een service layer als die diensten als 'microservices' worden aangeboden via flexibele, schaalbare API's.
Service layer
Een Service Layer definieert de reeks beschikbare bewerkingen voor de presentatielaag. De service layer omvat de bedrijfslogica van de applicatie, beheerst de transacties en coördineert de antwoorden. In onze app is de service layer de API.

Stappenplan
- We maken een eenvoudige service layer en plaatsen die in /mmt-php-api/public/index.php:
<?php include ('../vendor/autoload.php'); //echo '<pre>'; //var_dump($_SERVER); //echo '</pre>'; $request = $_SERVER['REDIRECT_URL']; // echo "<br />Request: $request"; switch ($request) { case '/mmt-php-api/public/curiosity/readall' : \ModernWays\Dal::$configLocation = __DIR__ . '/../data/config.ini'; $list = \ModernWays\Dal::readAll('Curiosity'); echo json_encode($list); break; case '/mmt-php-api/public/curiositycomment/create' : $newComment = $_POST; \ModernWays\Dal::$configLocation = __DIR__ . '/../data/config.ini'; if (\ModernWays\Dal::create('CuriosityComment', $newComment, 'Comment')) { echo 'Create is gelukt!<br/>'; } else { echo 'Oeps er is iets fout gelopen!</br>'; } echo \ModernWays\Dal::getMessage(); break; case '/mmt-php-api/public/curiositycomment/createcheck' : if (isset($_POST['UserName']) && isset($_POST['Password'])) { \ModernWays\Dal::$configLocation = __DIR__ . '/../data/config.ini'; // find user and verify password $user = \ModernWays\Dal::readOne('User', $_POST['UserName'], 'Name', array('Name', 'HashedPassword', 'RoleId', 'Salt')); if (isset($user)) { if (password_verify($_POST['Password'] . $user['Salt'], $user['HashedPassword'])) { $newComment = array('UserName' => $user['Name'], 'Comment' => $_POST['Comment'], 'CuriosityId' => $_POST['CuriosityId']); if (\ModernWays\Dal::create('CuriosityComment', $newComment, 'Comment')) { echo 'Create is gelukt!<br/>'; } else { echo 'Oeps er is iets fout gelopen!</br>'; } echo \ModernWays\Dal::getMessage(); } else { echo 'Ongeldig paswoord!'; } } else { echo 'Ongeldige gebruikernaam!'; } } else { echo 'Je moet een gebruikernaam en paswoord opgeven!'; } break; case '/mmt-php-api/public/curiositycomment/readallwhere' : if (isset($_GET['CuriosityId'])) { \ModernWays\Dal::$configLocation = __DIR__ . '/../data/config.ini'; $list = \ModernWays\Dal::readAllWhere('CuriosityComment', $_GET['CuriosityId'], 'CuriosityId', 'UserName'); echo json_encode($list); } else { echo "$request is invalid and cannot be processed."; } break; default: echo "$request not found."; break; }
- Vermits de service layer diep genest zit in de website moeten we het /.htaccess bestand aanpassen:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ mmt-php-api/public/index.php [QSA,L]
- De service layer testen
- Tania Rascia, The Simplest PHP Router, 21 juni 2018
- Installeer Postman
- Om alle bezienswaardigheden op te vragen typ je de url naar je server op je workspace in:
https://jef-inghelbrecht-16539-jefinghelbrecht.c9users.io/mmt-php-api/public/curiosity/readallmmt - postman - readall
- Om een commentaar aan de bezienswaardigheid met Id = 1 toe te voegen typ je de volgende url in , selecteer je POST en voeg je de toe te voegen waarden toe als key-value pairs:
https://jef-inghelbrecht-16539-jefinghelbrecht.c9users.io/mmt-php-api/public/curiositycomment/createmmt - postman - curiositycomment create En nog eentje om het af te leren, we voegen aan dezelfde bezienswaardigheid nog een commentaar toe:
mmt - postman - curiositycomment create 2 - Om alle commentaren op een bepaalde bezienswaardigheid op te halen stuur je een GET request met de volgende URL:
https://jef-inghelbrecht-16539-jefinghelbrecht.c9users.io/mmt-php-api/public/curiositycomment/readallwhere?CuriosityId=1mmt - postman - curiositycomment readallwhere - Om een commentaar toe te voegen en verifiëren als de gebruikersnaam en paswoord geldig zijn stuur je een POST request met de volgende URL en payload:
mmt - postman - curiositycomment create and check Let erop dat Cloud9 https gebruikt. Voor meer info over beveiliging zie How to Create a Secure Login Script in PHP and MySQL en Adding Salt to Hashing: A Better Way to Store Passwords.
2019-01-27 20:12:12