Open4

laravelプロジェクトにOpenAPI導入

sunhigh105sunhigh105

vyuldashev/laravel-openapi

参考

Laravelで作る、OpenAPIによるAPIリファレンス自動生成 with GitLab CI

手順

  1. laravelのお作法通りControllerを作成& api.php にroute定義
  2. リクエスト定義
  1. レスポンス定義
  • Responses
  • レスポンスの中身はSchemaクラスを作成
  1. ターミナルで php artisan openapi:generate を実行すると、jsonが出力される

メモ

sunhigh105sunhigh105

Swagger導入

swagger-ui

npmやdockerコンテナなどある
https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/installation.md

l5-swagger

laravel用のswaggerライブラリ
今回はこちらを導入してみる
参考: https://zenn.dev/nicopin/articles/c6667934422712

l5-swagger導入手順

  1. composer require "darkaonline/l5-swagger" 実行
  2. AppServideProvider.phpregister() メソッドに以下を設定
$this->app->register(\L5Swagger\L5SwaggerServiceProvider::class);
  1. app/Http/Controllers/Controller.php クラス名の上に、以下のdocを設定
/**
 * @OA\Info(
 *     version="1.0.0",
 *     title="Your System Name",
 *     description="Sample system"
 *
 * )
 */
  1. API定義したいControllerのメソッドにdoc追記
  1. php artisan l5-swagger:generate 実行
  2. ブラウザで 起動しているサーバーの api/documentation にアクセス

エラーと対処方法

sunhigh105sunhigh105

OpenAPIの記法に関するライブラリ

vyuldashev/laravel-openapi

Swagger-PHP

  • PHPのソースコードからAPIのメタデータを生成
  • l5-swaggerにラッパーされている
  • 記法が2つある

derline/openapi-php-attributes

  • PHP attributeをもとにOpenAPI定義書を生成するライブラリ