nunun/laravel-openapi

0.8.0 2017-08-06 07:36 UTC

README

OpenAPI 定義ファイルから、 Laravel の RESTfulAPI サーバスタブを自動生成する Composer パッケージです。

使い方

プロジェクト直下に "restfulapi.yml" を置いて、以下を実行するだけです。

> php artisan restfulapi

あとは project/RESTfulAPI/Controllers 以下の php を修正して、API を実装します。

↓まずはインストールを実施して下さい↓

インストール

groovy が必要です。

http://groovy-lang.org/

Mac であれば brew、その他の OS の場合は各種パッケージマネージャから入れてください。

> brew install groovy

groovy が入ったら、composer でパッケージをストール。

> composer require nunun/laravel-openapi

最後に config/app.php にプロバイダを書き足します。

    'providers' => [
        ...
        LaravelOpenAPI\LaravelRESTfulAPIProvider::class,

artisan で restfulapi コマンドが出てきたら、ひとまず OK です。

> php artisan
...
  restfulapi
...

コード生成してみる

プロジェクト直下に restfulapi.yml を設置して (例は以下 URL 参照)

https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v2.0/yaml/petstore.yaml

project/
    restfulapi.yml  <------ ここに OpenAPI 定義ファイルを設置

以下のコマンドでコードを生成します。

> php artisan restfulapi

restfulapi.yml から経路、コントローラ、モデルが自動生成され、プロジェクトにインストールされます。

パス 生成内容 注意
app/RESTfulAPI/Controllers/*.php 実装記述用のコントローラ実装が格納されます API 実装はここに書く
app/RESTfulAPI/Models/*.php 実装記述用のモデル実装が格納されます モデル実装はここに書く
app/RESTfulAPI/Codegen/Routes.php 自動生成した経路が格納されます 注意! 再生成時に上書きされます
app/RESTfulAPI/Codegen/Controllers/*.php 自動生成したベースコントローラ実装が格納されます 注意! 再生成時に上書きされます
app/RESTfulAPI/Codegen/Models/*.php 自動生成したベースモデル実装が格納されます 注意! 再生成時に上書きされます

生成された API の経路は、artisan から確認できます。

> php artisan route:list

経路が確認できたら、HTTP からアクセスできるようになっています。

以降は php artisan restfulapi と php artisan serve からレスポンスを確認しつつ、

project/RESTfulAPI 以下の php を修正して、API を実装してください。

API 定義の確認と動作テスト

php artisan serve してから "http://<ホスト名>/api" にアクセスすると Swagger Editor が開きます。

プロジェクトの restfulapi.yml について、API 定義の確認と動作テストを行えます。

※プロジェクトに laravel-cors がインストールされていない場合は、ホストの API 定義が取れずうまく動作しません。

laravel-cors のインストールについては以下のページを見て下さい。

https://github.com/barryvdh/laravel-cors

各種機能設定について