必要な拡張機能とライブラリをインストールし、ユーザーと投稿データを管理するマイクロサービスを設計し、RESTful API を使用してエンドポイントを定義し、マイクロサービスを呼び出して API を提供する PHP コードを作成することにより、PHP と RESTful API を使用してマイクロサービスを PHP Web サービスと API 設計に統合します。統合。
#PHP Web サービス開発と API 設計の実践的なマイクロサービス統合
はじめに #マイクロサービス アーキテクチャは、最新のスケーラブルなアプリケーションを構築するための一般的なアプローチです。これは、アプリケーションを、API を介して相互に通信できる、疎結合で独立してデプロイされた小規模なサービスに分解します。 PHP 開発者にとって、マイクロサービスを Web サービスや API 設計に統合することは非常に大きな課題です。この記事では、PHP と RESTful API を使用してマイクロサービスを統合する方法を示す実践的な事例を紹介します。
インストールまず、必要な PHP 拡張機能とライブラリをインストールします。 RESTful API の場合、
RESTful Web Services 拡張機能が必要です。マイクロサービス通信の場合、GuzzleHTTP ライブラリが一般的な選択肢です。 sudo apt-get install php7.2-curl php7.2-restful
composer install guzzlehttp/guzzle
2 つのマイクロサービスの作成:
RESTful API 設計の使用:
GET /users - すべてのユーザーを取得
GET /posts - すべての投稿を取得します
ユーザー サービス (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();
以上がPHP Webサービス開発とAPI設計のマイクロサービス統合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。