Integrieren Sie Microservices in PHP-Webservices und API-Design mithilfe von PHP und RESTful API, indem Sie die erforderlichen Erweiterungen und Bibliotheken installieren, Microservices zur Verwaltung von Benutzer- und Postdaten entwerfen, Endpunkte mithilfe von RESTful API definieren und PHP-Code schreiben, um sie als Microservices zu bezeichnen und API-Integration bereitzustellen .
Praktische Microservices-Integration für PHP-Webservices-Entwicklung und API-Design
Einführung
Microservices-Architektur ist ein beliebter Ansatz zum Erstellen moderner, skalierbarer Anwendungen. Es zerlegt Anwendungen in lose gekoppelte, unabhängig bereitgestellte kleine Dienste, die über APIs miteinander kommunizieren können. Für PHP-Entwickler besteht die Hoffnung, Microservices in ihre Webservices und API-Designs zu integrieren. Dieser Artikel enthält einen praktischen Fall, der zeigt, wie Microservices mithilfe von PHP und RESTful API integriert werden.
Installation
Installieren Sie zunächst die notwendigen PHP-Erweiterungen und Bibliotheken. Für RESTful-APIs ist die Erweiterung „RESTful Web Services“ erforderlich. Für die Microservice-Kommunikation ist die GuzzleHTTP-Bibliothek eine beliebte Wahl. sudo apt-get install php7.2-curl php7.2-restful
composer install guzzlehttp/guzzle
Erstellen Sie zwei Microservices:
Entworfen mit RESTful API:
GET /users – Alle Benutzer abrufen
GET /posts – Alle Beiträge abrufen
Benutzerdienst (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();
}
}
<?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();
}
}
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();
Das obige ist der detaillierte Inhalt vonMicroservice-Integration von PHP-Webservice-Entwicklung und API-Design. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!