필수 확장 및 라이브러리 설치, 사용자 및 게시 데이터 관리를 위한 마이크로서비스 설계, RESTful API를 사용한 엔드포인트 정의, 마이크로서비스 호출 및 API 통합 제공을 위한 PHP 코드 작성 등을 통해 PHP 및 RESTful API를 사용하여 마이크로서비스를 PHP 웹 서비스 및 API 설계에 통합합니다.
PHP 웹 서비스 개발 및 API 설계를 위한 실용적인 마이크로서비스 통합
소개
마이크로서비스 아키텍처는 현대적이고 확장 가능한 애플리케이션을 구축하는 데 널리 사용되는 접근 방식입니다. 이는 API를 통해 서로 통신할 수 있는 느슨하게 결합되고 독립적으로 배포된 소규모 서비스로 애플리케이션을 분해합니다. PHP 개발자가 마이크로서비스를 웹 서비스 및 API 디자인에 통합하는 것은 매우 어려운 일입니다. 이 기사에서는 PHP 및 RESTful API를 사용하여 마이크로서비스를 통합하는 방법을 보여주는 실제 사례를 제공합니다.
설치
먼저 필요한 PHP 확장 프로그램과 라이브러리를 설치하세요. RESTful API의 경우 RESTful 웹 서비스 확장이 필요합니다. 마이크로서비스 통신의 경우 GuzzleHTTP 라이브러리가 널리 사용됩니다.
sudo apt-get install php7.2-curl php7.2-restful composer install guzzlehttp/guzzle
마이크로 서비스 디자인
두 개의 마이크로 서비스 만들기:
API 디자인
을 사용하여 설계됨 RESTful API:
사용자 서비스:
Post 서비스:
<?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 웹 서비스 개발 및 API 설계의 마이크로서비스 통합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!