share facebook facebook twitter menu hatena pocket slack

2017.12.11 MON

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

川原 洋平

WRITTEN BY 川原 洋平

これは

初老丸 Advent Calendar 2017 - Qiita
集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。ジーク・初老丸!

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": []
                    }
                ]
... 
}

以上

メモでした.

元記事はこちら

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

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。