Intégrer des microservices dans les services Web PHP et la conception d'API à l'aide de PHP et de l'API RESTful en installant les extensions et bibliothèques nécessaires, en concevant des microservices pour gérer les données des utilisateurs et des publications, en définissant les points de terminaison à l'aide de l'API RESTful et en écrivant du code PHP pour les appeler microservices et fournir une intégration API .
Intégration pratique de microservices pour le développement de services Web PHP et la conception d'API
Introduction
L'architecture de microservices est une approche populaire pour créer des applications modernes et évolutives. Il décompose les applications en petits services faiblement couplés et déployés indépendamment qui peuvent communiquer entre eux via des API. Il est très important pour les développeurs PHP d'intégrer des microservices dans leurs services Web et leurs conceptions d'API. Cet article fournira un cas pratique montrant comment intégrer des microservices à l'aide de PHP et de l'API RESTful.
Installation
Tout d'abord, installez les extensions et bibliothèques PHP nécessaires. Pour les API RESTful, l'extension RESTful Web Services est requise. Pour la communication par microservices, la bibliothèque GuzzleHTTP est un choix populaire.
sudo apt-get install php7.2-curl php7.2-restful composer install guzzlehttp/guzzle
Conception de microservices
Créez deux microservices :
Conception d'API
Conçu avec l'API RESTful :
Service utilisateur :
Service de publication :
Code PHP
Service utilisateur (user.php)
<?php use GuzzleHttp\Client; class UserService { private $userServiceEndpoint; public function __construct(string $userServiceEndpoint) { $this->userServiceEndpoint = $userServiceEndpoint; } public function getAllUsers(): array { $client = new Client(); $response = $client->get($this->userServiceEndpoint . '/users'); return json_decode($response->getBody()->getContents(), true); } public function createUser(array $data): int { $client = new Client(); $response = $client->post($this->userServiceEndpoint . '/users', [ 'form_params' => $data ]); return $response->getStatusCode(); } }
Service post (post.php)
<?php use GuzzleHttp\Client; class PostService { private $postServiceEndpoint; public function __construct(string $postServiceEndpoint) { $this->postServiceEndpoint = $postServiceEndpoint; } public function getAllPosts(): array { $client = new Client(); $response = $client->get($this->postServiceEndpoint . '/posts'); return json_decode($response->getBody()->getContents(), true); } public function createPost(array $data): int { $client = new Client(); $response = $client->post($this->postServiceEndpoint . '/posts', [ 'form_params' => $data ]); return $response->getStatusCode(); } }
Code du service Web
api. php
<?php use UserService; use PostService; $userService = new UserService('http://example.com/user-service'); $postService = new PostService('http://example.com/post-service'); $app = new Slim\App(); $app->get('/users', function (Request $request, Response $response, array $args) use ($userService) { $users = $userService->getAllUsers(); return $response->withJson($users); }); $app->post('/users', function (Request $request, Response $response, array $args) use ($userService) { $data = $request->getParsedBody(); $statusCode = $userService->createUser($data); return $response->withStatus($statusCode); }); $app->get('/posts', function (Request $request, Response $response, array $args) use ($postService) { $posts = $postService->getAllPosts(); return $response->withJson($posts); }); $app->post('/posts', function (Request $request, Response $response, array $args) use ($postService) { $data = $request->getParsedBody(); $statusCode = $postService->createPost($data); return $response->withStatus($statusCode); }); $app->run();
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!