ようへいの日々精進XP

よかろうもん

swagger-php で Basic 認証を定義する

これは

qiita.com

初老丸 Advent Calendar 2017 2 日目の記事になる予定です.

tl;dr

sample

以下のような感じで security={{"BasicAuth":{}}} と書けばイケた.

<?php
  /**
   * @SWG\Swagger(
   *     basePath="/v0.1",
   *     host="api.example.com",
   *     schemes={"https"},
   *
   *     @SWG\Info(
   *         title="example API Document",
   *         version="0.1"
   *     ),
   *
   *     @SWG\SecurityScheme(
   *         securityDefinition="BasicAuth",
   *         type="basic"
   *     ),
   * ),
   * @SWG\Get(
   *     path="/api",
   *     description="これはサンプルです.",
   *     tags={"example"},
   *     security={{"BasicAuth":{}}},
   *     @SWG\Parameter(
   *         name="foo",
   *         in="path",
   *         description="path を指定.",
   *         required=false,
   *         type="string"
   *     ),
   *     @SWG\Response(
   *         response=200,
   *         description="OK"
   *     ),
   * )
   */

  public function get_foo() {
  ...
  }

json で出力すると, 以下のような感じになる.

{
    "swagger": "2.0",
    "info": {
        "title": "example API Document",
        "version": "0.1"
    },
    "host": "api.example.com",
    "basePath": "/v0.1",
    "schemes": [
        "https"
    ],
    "paths": {
        "/api": {
            "get": {
                "tags": [
                    "example"
                ],
                "security": [
                    {
                        "basicAuth": []
                    }
                ]
... 
}

以上

メモでした.