> 백엔드 개발 > PHP 튜토리얼 > PHP에서 GraphQL 미들웨어를 사용하여 API를 작성하는 방법

PHP에서 GraphQL 미들웨어를 사용하여 API를 작성하는 방법

WBOY
풀어 주다: 2023-06-17 12:38:01
원래의
1369명이 탐색했습니다.

GraphQL은 개발자가 프런트엔드와 백엔드 간에 데이터를 전송하는 유연하고 강력한 방법을 구축할 수 있게 해주는 새로운 API 쿼리 언어입니다. PHP는 강력함과 유연성으로 인해 다양한 애플리케이션을 개발하는 데 적합한 널리 사용되는 서버 측 언어입니다. 이 기사에서는 GraphQL 미들웨어와 함께 PHP를 사용하여 API를 작성하는 방법을 살펴보겠습니다.

GraphQL 미들웨어는 GraphQL API와 애플리케이션 코드 사이의 다리 역할을 하는 도구입니다. 이는 GraphQL 쿼리를 처리하고 구문 분석하여 데이터 요청 및 응답 프로세스를 더 잘 관리할 수 있도록 도와줍니다. PHP에서는 이를 달성하기 위해 다음 세 가지를 포함하여 몇 가지 다른 미들웨어를 사용할 수 있습니다.

  1. GraphQLServerMiddlewareErrorMiddleware
  2. GraphQLServerMiddlewareTracingMiddleware
  3. GraphQLServerMiddlewareValidateRequestMiddleware

이 미들웨어를 사용하기 전에 PHP에 GraphQL을 설치해야 합니다. . Composer를 사용하여 다음 두 패키지를 각각 설치할 수 있습니다.

  1. webonyx/graphql-php – GraphQL 서버 구축에 사용
  2. league/graphql – GraphQL 미들웨어 작성에 사용

설치가 완료된 후 다음을 사용할 수 있습니다. GraphQL 서버를 시작하는 코드는 다음과 같습니다.

<?php
require_once(__DIR__ . '/vendor/autoload.php');

use GraphQLServerServerConfig;
use GraphQLServerStandardServer;

$serverConfig = ServerConfig::create()
    ->setSchema($schema)  //GraphQL schema
    ->setRootValue($rootValue)  //GraphQL查询的根对象
    ->setQueryBatching(true)  //是否允许GraphQL批量查询
    ->setDebug(true);  //调试模式

$request = GraphQLServerRequestParser::parse();
$response = (new StandardServer($serverConfig))->processPsrRequest($request);
$response->send();
?>
로그인 후 복사

이 코드에서는 먼저 GraphQL 서버 구성을 생성하고 쿼리 일괄 처리 및 디버그 모드와 같은 일부 옵션을 설정합니다. 그런 다음 요청을 구문 분석하여 서버에 전달하고 마지막으로 클라이언트에 응답을 다시 보냅니다.

이제 세 가지 GraphQL 미들웨어를 사용하는 방법을 살펴보겠습니다.

  1. GraphQLServerMiddlewareErrorMiddleware

ErrorMiddleware는 GraphQL API에서 오류를 포착하고 처리하는 데 사용되는 미들웨어입니다. API에 쿼리를 보내면 오류를 감지하고 오류 응답을 반환할 수 있습니다. ErrorMiddleware를 사용하려면 이를 GraphQL 서버 구성에 추가해야 합니다.

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setFieldMiddleware([
        new ErrorMiddleware(),
    ]);
로그인 후 복사

이렇게 하면 오류가 발생할 때 서버가 적절한 응답을 반환하도록 보장하고 API를 쉽게 디버깅할 수 있습니다.

  1. GraphQLServerMiddlewareTracingMiddleware

TracingMiddleware는 GraphQL API에서 쿼리 시간을 기록하기 위한 미들웨어입니다. 이는 개발자가 쿼리 병목 현상을 식별하고 처리가 완료되면 실행 시간을 반환하는 데 도움이 됩니다. TracingMiddleware를 사용하려면 이를 GraphQL 서버 구성에 추가해야 합니다.

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setFieldMiddleware([
        new TracingMiddleware(),
    ]);
로그인 후 복사

이렇게 하면 API가 제대로 작동하고 향후 조정에 대비할 수 있습니다.

  1. GraphQLServerMiddlewareValidateRequestMiddleware

ValidateRequestMiddleware는 GraphQL 쿼리가 유효한지 확인하는 미들웨어입니다. 이는 서버를 충돌시키거나 민감한 정보를 노출시킬 수 있는 악의적인 쿼리 또는 쿼리를 API에서 실행하는 것을 방지하는 데 도움이 됩니다. ValidateRequestMiddleware를 사용하려면 이를 GraphQL 서버 구성에 추가해야 합니다.

$serverConfig = ServerConfig::create()
    ->setSchema($schema)
    ->setRootValue($rootValue)
    ->setQueryBatching(true)
    ->setDebug(true)
    ->setContext($context)
    ->setValidationRules([
        new QuerySecurityRule(),
    ])
    ->setFieldMiddleware([
        new ValidateRequestMiddleware(),
    ]);
로그인 후 복사

이러한 방식으로 API가 안전하고 유효한 쿼리 요청에만 응답하는지 확인할 수 있습니다.

위 내용은 PHP에서 GraphQL 미들웨어를 이용하여 API를 작성하는 기본 내용입니다. 미들웨어를 사용하면 코드가 크게 단순화되고 데이터 전송 프로세스를 더 잘 관리하는 데 도움이 됩니다. GraphQL과 PHP에 대해 더 깊이 이해하려면 공식 문서와 샘플 코드에서 더 많은 방법과 팁을 확인하세요.

위 내용은 PHP에서 GraphQL 미들웨어를 사용하여 API를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿