闊歩文書管理
公式サイト:https://swagger.io/
高速あなたの書き込み RESTFUL API
のアノテーションによって、定義されたインタフェースとモデルをインタフェース文書化ツール、およびコードファイルは、ファイルストレージ一緒に配置または別々にすることができます。
優位
- 文書の一貫性を維持するために??コードの定義ドキュメントアノテーション、コードによって簡単に
- モデルの再利用は、冗長なドキュメント、より信頼性の高い文書を減らします
- インターフェース呼び出しをテストするために、サードパーティ製のツールなしで、クライアントアクセスインタフェースは、あなたが直接インターフェイスをデバッグすることができます
- サポート認証局、およびその他の機能
Laravel闊歩拡張
拡張送信元アドレス:https://github.com/DarkaOnLine/L5-Swagger
1 |
作曲darkaonline / L5-闊歩必要と |
これは、コンフィギュレーション・ファイルが生成されます l5-swagger.php
設定項目に留意しなければなりません、
routes.api
デフォルト値api/documentation
闊歩ドキュメントルーティングシステムへのアクセスroutes.docs
JSON文書格納パスファイルを解析闊歩コメントを生成しましたpaths.annotations
効果的な注釈のパス設定、デフォルトのbase_path('app')
アプリケーションパスgenerate_always
テスト環境は、この設定を有効にする必要があり、各訪問は、自動的に最新のドキュメント生成されたコメントを解析しますswagger_version
デフォルト値は2.0で、提案3.0に修正します
以下のすべての注釈内容は、必要がに存在する paths.annotations
パス。
インタフェースのバージョン
@OA\Info
すでにインターフェイスのバージョン、タイトル、説明、著者情報を定義しました。
1 |
/ ** |
やり方を要求するパス要求インタフェース
@OA\Get
、@OA\Post
インタフェースモード要求を定義します
例:USER_ID
情報の前に要求するユーザ /api/users/{user_id}
インタフェースのグループ化の設定は:tags
界面に分類されます
1 |
/ ** |
リクエストインターフェイスパラメータ
三つのパラメータによって定義することができ闊歩、path
、header
、query
- パス、などendponitパラメータ、の存在下で、/ユーザ/ {USER_ID}
- ヘッダは、リクエストヘッダパラメータは、ユーザトークン検証トークンとして、あります
- クエリとしてリクエストURLのリクエストパラメータと、/ユーザー?ニックネーム= {}ニックネーム
1 |
/ ** |
POSTは、一般的に使用されるフォーム提出 application/json
、ユーザの作成などの方法を、
@OA\Post
パス=/users
1 |
/** |
Schema 模型定义
上面的注释中,多次引用 @OA\Schema(ref="#/components/schemas/UserModel")
1 |
/** |
Laravel-Swagger 会自动根据您的注释进行匹配
上传文件接口示例
定义一个接口,接收上传文件,并返回结果远程文件地址
接口定义:
1 |
/** |
模型定义:
1 |
/** |
访问 api/documentation
效果如图
try it out
上传文件操作结果
需要权限认证的接口
一般对外网开放的接口,需要添加权限控制,Swagger 提供很好的支持
在 l5-swagger.php
配置文件中添加, crypt-token
定义请求头部必须添加 token
作为权限校验令牌。
1 |
'security' => [ |
接口注释中,添加对应的验证方式:
1 |
/** |
更多 Swagger3 定义字段描述,可以查看官方文档:https://swagger.io/specification/#parameterObject