PHP와 Laravel이 통합되어 Swagger 인터페이스 문서화 및 테스트 구현

王林
풀어 주다: 2023-06-25 09:46:01
원래의
1047명이 탐색했습니다.

오늘날 점점 더 개방적인 인터넷 환경에서 API는 다양한 애플리케이션이 서로 통신하는 주요 수단이 되었습니다. API 인터페이스를 사용하면 다양한 애플리케이션을 서로 쉽게 연결하여 더욱 복잡한 애플리케이션을 구현할 수 있습니다. 그러나 API 인터페이스 문서의 작성 및 유지 관리는 물론 인터페이스 테스트도 비교적 어려운 작업입니다. 이 문제를 해결하기 위해 Swagger 인터페이스 문서와 테스트 도구가 탄생했습니다.

Swagger는 RESTful 스타일 웹 서비스를 생성, 설명, 호출 및 시각화하기 위한 표준화되고 완전한 프레임워크입니다. Swagger는 GitHub의 오픈 소스이며 OpenAPI에서 유지 관리됩니다. Swagger는 개발자가 수명주기 전반에 걸쳐 RESTful API를 설계, 구축, 문서화 및 테스트하도록 지원합니다. PHP 개발자의 경우 Swagger PHP 및 Laravel 통합을 사용하여 API 인터페이스 문서를 작성하고 표시할 수 있습니다.

이 기사에서는 PHP와 Laravel을 사용하여 Swagger를 통합하여 API 인터페이스 문서를 작성하고 테스트하는 방법을 소개합니다.

  1. Swagger PHP 설치

먼저 Swagger PHP 패키지를 설치해야 합니다. Composer를 통해 설치할 수 있으며, 터미널을 열고 Laravel 프로젝트 디렉터리에 들어가서 다음 명령을 실행합니다.

composer require zircote/swagger-php

  1. Swagger UI 설치

Swagger UI는 오픈 소스 대화형 페이지입니다. for Swagger 사양에 정의된 API 문서를 표시합니다. 여기에는 Swagger, ReDoc 및 Swagger-UI를 활용하여 API 문서를 렌더링하기 위한 프런트 엔드 라이브러리가 포함되어 있습니다. npm을 통해 설치하거나 Swagger UI 소스 코드를 직접 다운로드할 수 있습니다.

여기에서는 Composer를 사용하여 다음 명령을 설치하고 실행합니다.

composer require darkaonline/l5-swagger

  1. Swagger PHP 구성

설치가 완료된 후 Laravel에 Swagger 서비스 공급자를 추가해야 합니다. 구성 파일. config/app.php 파일을 열고 공급자 배열을 찾은 후 다음 구성을 추가합니다.

`
'providers' => [

...
DarkaonlineL5SwaggerL5SwaggerServiceProvider::class,
로그인 후 복사

],

'aliases' => [

...
'Swagger' => DarkaonlineL5SwaggerFacadesSwaggerL5::class,
로그인 후 복사

]
`

완료 구성 후 다음 명령을 실행하여 Swagger의 구성 파일, 보기, 라우팅 및 기타 파일을 게시하십시오.

php artisan Vendor:publish --provider "L5SwaggerL5SwaggerServiceProvider"

  1. Swagger 주석 작성

이제 작성을 시작할 수 있습니다. Swagger 주석 . Swagger 주석은 Swagger 도구에 API의 매개변수, 반환 값, 요청 방법, 라우팅 주소 및 기타 정보를 알려주기 위해 코드 주석에 몇 가지 특정 명령문을 추가하는 것입니다.

여기서는 Laravel의 기본 Api 인터페이스를 예로 들어 코드에 Swagger 주석을 추가합니다. 샘플 코드는 다음과 같습니다:

`
/**

  • @SWGGet(
  • path="/api/users/{id}",
  • summary="사용자 정보 가져오기",
  • tags={"사용자 관리"},
  • @SWGParameter(
  • name ="id",
  • in="경로",
  • required=true,
  • type="정수",
  • description="사용자 ID"
  • ),
  • @SWGResponse(
  • response=200,
  • description="작업 성공",
  • @SWGSchema(
  • type="object",
  • @SWGProperty(
  • property="code",
  • type="integer",
  • format="int64" ,
  • description="반환 코드"
  • ),
  • @SWGProperty(
  • property="data",
  • type="object",
  • description="사용자 정보 콘텐츠",
  • @SWGProperty(
  • property="id",
  • type="integer",
  • format="int64",
  • description="사용자 ID"
  • ),
  • @SWGProperty(
  • property="이름",
  • type="string",
  • description="사용자 이름"
  • ),
  • @SWGProperty(
  • property="age",
  • type="integer",
  • format="int32",
  • description ="사용자 연령"
  • )
  • )
  • )
  • ),
  • @SWGResponse(response=404, Description="존재하지 않는 사용자 정보"),
  • @SWGResponse(response=500, 설명= "서버 내부 오류")
  • )
    */

public function getUserInfo($ id)
{

// 根据ID获取用户信息
로그인 후 복사

}
`

코드 주석 위에 @SWGGet 주석을 사용하여 인터페이스의 요청 방법 및 라우팅 주소를 설명하고 요약, 태그, 매개변수, 응답 및 기타 주석을 추가하여 Swagger에 알립니다. 다른 세부 사항의 인터페이스에 대해 자세히 알아보십시오.

  1. Swagger 문서 생성

Swagger 주석 작성을 완료한 후 Swagger API 문서를 생성할 수 있습니다. 터미널을 열고 Laravel 프로젝트 디렉토리를 입력한 후 다음 명령을 입력하여 문서를 생성하십시오:

php artisan l5-swagger:generate

실행 후 Swagger API 문서가 자동으로 생성되며 브라우저 http를 통해 액세스할 수 있습니다. ://your_host/api /documentation 설명서를 봅니다. 이 페이지에는 요청 방법, 매개변수, 반환 결과 및 기타 세부정보를 포함한 모든 API 인터페이스가 표시됩니다.

  1. API 인터페이스 테스트

API 문서 작성 및 표시를 완료한 후에는 API 인터페이스도 테스트해야 합니다. Swagger의 API 문서에서 "Try it out" 버튼을 클릭하여 API 인터페이스를 테스트할 수 있습니다. 여기에서 요청 매개변수를 수동으로 입력한 다음 "실행" 버튼을 클릭하면 Swagger가 자동으로 서버에 요청을 시작하고 응답 결과를 표시합니다. 이러한 방식으로 Swagger 도구를 통해 API 인터페이스를 테스트할 수 있습니다.

요약

Swagger PHP와 Laravel 통합을 사용하면 완벽한 API 인터페이스 문서를 작성하는 것이 매우 편리하며 인터페이스를 테스트할 수 있습니다. 실제 응용 프로그램에서 Swagger 도구는 개발 효율성을 크게 향상시키고 오류 발생을 줄일 수 있습니다. 개발자는 API 인터페이스의 관리 및 유지 관리를 개선하여 애플리케이션의 신뢰성과 안정성을 향상시키기 위해 가능한 한 빨리 Swagger 도구를 채택하는 것이 좋습니다.

위 내용은 PHP와 Laravel이 통합되어 Swagger 인터페이스 문서화 및 테스트 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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