본문 바로가기

개발

[라라벨] 라라벨에 Swagger 설정해보기

 

Swagger 란 ?

 

 - REST API를 설계, 빌드, 문서화 및 소비하는 데 도움이되는 OpenAPI 사양을 기반으로 구축 된 일련의 오픈 소스 도구

 

아래 githup 을 통해서 자신의 라라벨 버전에 맞는 패키지를 찾아서 composer를 통해 swagger 설치

composer require "darkaonline/l5-swagger:5.7.*"

 

설치중에 나온 에러... 

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolve
r/Solver.php on line 220............


php.ini 의 memory.limit 를 -1로 변경 후 아파치 재시작 후 다시 설치하니 문제 없이 설치 되었음..

 

 

config 와 view 파일을 생성 후 generate 명령 

php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"
php artisan l5-swagger:generate

 

 

오류 해결

Regenerating docs

   ErrorException  : Required @OA\Info() not found

  at /k3/www/nana.afreecatv.com/vendor/zircote/swagger-php/src/Logger.php:39
    35|         $this->log = function ($entry, $type) {
    36|             if ($entry instanceof Exception) {
    37|                 $entry = $entry->getMessage();
    38|             }
  > 39|             trigger_error($entry, $type);
    40|         };
    41|     }
    42|
    43|     /**

  Exception trace:

  1   trigger_error("Required @OA\Info() not found")
      /k3/www/nana.afreecatv.com/vendor/zircote/swagger-php/src/Logger.php:39

  2   OpenApi\Logger::OpenApi\{closure}("Required @OA\Info() not found")
      /k3/www/nana.afreecatv.com/vendor/zircote/swagger-php/src/Logger.php:72

  Please use the argument -v to see more details.
  
  
  해결 :
  
  app/Http/Controllers/Controller.php 파일에서 아래 주석 추가 
   
/**
 * @OA\Info(
 *    title="Your super  ApplicationAPI",
 *    version="1.0.0",
 * )
 */
class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}

 

 

Regenerating docs

   ErrorException  : Required @OA\PathItem() not found

  at /k3/www/nana.afreecatv.com/vendor/zircote/swagger-php/src/Logger.php:39
    35|         $this->log = function ($entry, $type) {
    36|             if ($entry instanceof Exception) {
    37|                 $entry = $entry->getMessage();
    38|             }
  > 39|             trigger_error($entry, $type);
    40|         };
    41|     }
    42|
    43|     /**

  Exception trace:

  1   trigger_error("Required @OA\PathItem() not found")
      /k3/www/nana.afreecatv.com/vendor/zircote/swagger-php/src/Logger.php:39

  2   OpenApi\Logger::OpenApi\{closure}("Required @OA\PathItem() not found")
      /k3/www/nana.afreecatv.com/vendor/zircote/swagger-php/src/Logger.php:72

  Please use the argument -v to see more details.
  
  
  해결 :
  app/Http/Controllers/Auth/LoginController.php 파일에서 아래 주석 추가

/**
 * @OA\Post(
 * path="/login",
 * summary="Sign in",
 * description="Login by email, password",
 * operationId="authLogin",
 * tags={"auth"},
 * @OA\RequestBody(
 *    required=true,
 *    description="Pass user credentials",
 *    @OA\JsonContent(
 *       required={"email","password"},
 *       @OA\Property(property="email", type="string", format="email", example="user1@mail.com"),
 *       @OA\Property(property="password", type="string", format="password", example="PassWord12345"),
 *       @OA\Property(property="persistent", type="boolean", example="true"),
 *    ),
 * ),
 * @OA\Response(
 *    response=422,
 *    description="Wrong credentials response",
 *    @OA\JsonContent(
 *       @OA\Property(property="message", type="string", example="Sorry, wrong email address or password. Please try again")
 *        )
 *     )
 * )
 */

 

 

페이지 호출 완성!

 

 

github.com/DarkaOnLine/L5-Swagger/wiki/Installation-&-Configuration

 

DarkaOnLine/L5-Swagger

OpenApi or Swagger integration to Laravel. Contribute to DarkaOnLine/L5-Swagger development by creating an account on GitHub.

github.com

 

 

출처 : medium.com/@ivankolodiy/how-to-write-swagger-documentation-for-laravel-api-tips-examples-5510fb392a94

 

How to write Swagger documentation for Laravel API. Tips & examples

API documentation becomes very necessary when you split the team into Backend and Frontend. And even more when you divide your monorepo…

medium.com

 

'개발' 카테고리의 다른 글

[테스트] TDD 와 BDD  (0) 2020.11.26
[정규식] Jquery 자주 쓰는 정규식 모음  (0) 2020.11.13
[라라벨] 라라벨에 Swagger 설정해보기  (0) 2020.10.15
[파이썬] 기본 문법  (0) 2020.10.12
[라라벨] 라라벨 설치  (0) 2020.09.22
[파이썬] 파이썬 설치하기  (0) 2020.09.21

맨 위로