2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

laravelにswaggerを導入してAPIの仕様書作成とテストをする

Posted at

swaggerとは

swaggerはRESTなAPIの
・仕様書を作成。
・テストを実行。
ができます。

laravelにswaggerインストール

コマンドプロンプト
composer require "darkaonline/l5-swagger"

jsonではなくyamlで扱いたいので.envに以下を追加。

.env
L5_FORMAT_TO_USE_FOR_DOCS = yaml

swaggerでAPIの仕様書を表示

/api/documentation にアクセスするとswaggerの表示を確認できます。
このようにシンプルな画面でAPIの仕様書を確認できます。

image.png

\storage\api-docs\api-docs.yaml
の内容が表示されます。

swaggerのyamlファイルの書き方

(オンラインエディタを使っても便利 https://editor-next.swagger.io/)
\storage\api-docs\api-docs.yaml
の内容を編集していきます。

yaml
openapi: 3.0.0
info:
  title: H1タイトル #H1
servers:
  - url: http://localhost/api/ #url
    description: ローカル開発環境 #urlのdescription
paths:
  /test: #パス
    get: #メソッド
      summary: H2タイトル #H2
      parameters: #get情報
      - name: page
        in: query # getで渡される
        # in: path # urlに埋め込まれる
        # required: true
        schema:
          type: integer
          # type: boolean
          # type: array
          # type: object
      requestBody: #post情報
        # required: true #必須
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: "なまえ"
                description:
                  type: string
                  example: "詳細"
      responses: #レスポンス
        '200': #200が返ってきたら
          description: OK
          content:
            application/json: #返ってきたデータをjsonとして表示
              schema:
                $ref: '#/components/schemas/testsResponse' # ★が表示される
        '404':
          description: not found
        '500':
          description: サーバーエラー
#   post: #メソッド
#     summary: H2タイトル #H2
#     .....
#
# /test2:
#   get:
#   .....

components:
  schemas:
    testsResponse: # ★ここ
      type: object
      properties:
        data:
          type: object
          properties: # この形式で返ってくるよ。
            id:
              type: integer
              format: int
              example: 1
            name:
              type: string
              example: わたしの名前

swaggerでAPIのテスト

APIのテストは
「Try it out」をクリック

スクリーンショット 2024-02-29 151017.jpg

「Execute」をクリック

スクリーンショット 2024-02-29 151046.jpg

これでAPIの実行結果が表示されます。

このようにAPIの仕様書を見やすくまとめてテストまで出来るswagger。
是非活用してみてください。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?