29
Swaggerで簡単 APIドキュメント作成 2016.8.30 Tue 松 丈樹 出張!雲勉 in Tokyo 勉強会/開発者向け

[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成

Embed Size (px)

Citation preview

  • SwaggerAPI2016.8.30 Tue

    in Tokyo

  • cloudpack

  • cloudpack

    PHP5 2

  • Swagger

  • Swagger

    API

    Swagger-UIAPI

  • /** * * */

    /** * URL * * * ... */

  • APIPM .oO

    API PM

    API

  • Swagger-UI API API

    Swagger-UI h1p://petstore.swagger.io/

  • Swagger

    PM API API

  • Swagger

  • Swagger-PHP v2.x

  • /** * @SWG\Swagger( * schemes={"h-p"}, * host="localhost", * basePath="/", * @SWG\Info( * version="1.0.0", * >tle=" in TokyoAPI", * descrip>on="API" * ) * ) */

    @SWG\Info

  • /** * @SWG\Defini2on( * defini>on="user", * @SWG\Property(property="user_id", type="integer", descrip>on="ID"), * @SWG\Property(property="name", type="string", descrip>on=""), * @SWG\Property(property="job", type="string", descrip>on="") * ) */

    @SWG\Defini2on

  • /** * @SWG\Defini>on(defini>on="user") */ class User extends Model {

    /** * @SWG\Property(property="user_id, type="integer", descrip>on="ID")

    */ public $user_id;

    /** * @SWG\Property(property="name", type="string", descrip>on="") */ public $name;

    /** * @SWG\Property(property="job, type="string", descrip>on="") */ public $job;

    @SWG\Defini2on

  • API

    /** * @SWG\Get( * path=/user, * summary=, * descrip>on=", * produces={"applica>on/json","applica>on/xml"}, * @SWG\Response( * response=200, * descrip>on="successful opera>on", * @SWG\Schema(ref="#/defini>ons/user") * ) * ) */

    @SWG\Get, @SWG\Post, @SWG\Put, .....

  • Swaggervel

  • Swaggervel

    PHP Laravel Swagger-php Swagger-ui composer require jlapp/swaggervel:master-dev

    h1ps://laravel-news.com/2015/01/swagger-laravel/

  • Swaggervel

    Installation Add JlappSwaggervelSwaggervelServiceProvider to

    your providers array in app/config/app.php Run php artisan vendor:publish to push swagger-ui to

    your public folder

    public/

  • Swaggervel

    JSON $ vendor/bin/swagger app/Http/Controllers -o public/docs public/docs/swagger.json{ "swagger": "2.0", "info": { "Ntle": "\u51fa\u5f35\uff01\u96f2\ufa33 in Tokyo\u767b\u58c7\u30c7\u30e2API", "descripNon": "\u3042\u3093\u306a\u3053\u3068\u3084\u3053\u3093\u306a...", "version": "1.0.0" }, "host": "localhost", "basePath": "/", "schemes": [ "h1p" ], "paths": { "/user": { "get": { ...

  • Swaggervel

    http://SERVER_NAME/api/docs http://SERVER_NAME/docs/swagger.json

    user_id : int name : string job : string

  • Swaggervel

    http://SERVER_NAME/api/docs http://SERVER_NAME/docs/swagger.json

    user_id : int name : string job : string

  • Swagger

  • Swagger

    +Swagger JSON Swagger-UI commit

    Swagger-UIQA

    APISwagger-UI

  • Swagger PM API

  • Swagger PM API

    Swagger

    cloudpackhttp://cloudpack.jp/recruit