日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

PHP使用Swagger生成好看的API文檔

瀏覽:285日期:2022-06-06 16:53:10
目錄
  • 一、安裝swagger-php
  • 二、設置一個輸出api文檔數據的接口
  • 三、使用
  • 四、顯示swagger ui

PHP使用Swagger生成好看的API文檔不是不可能,而是非常簡單。

首先本人使用Laravel框架,所以在Laravel上安裝swagger-php。

一、安裝swagger-php

composer require zircote/swagger-php

swagger-php提供了命令行工具,所以可以全局安裝,然后把工具的路徑加到PATH里去。

composer global require zircote/swagger-php

然后把zircote/swagger-php/bin 目錄加到PATH里。這個東西本人用不到,就不研究了。

二、設置一個輸出api文檔數據的接口

a)、生成一個控制器: SwaggerController

b)、添加一個方法: getJSON()

    public function getJSON()
    {
$swagger = \OpenApi\Generator::scan([app_path("Http/Controllers/")]);
return response()->json($swagger, 200);
    }

有的文章里寫 \Swagger\scan(),但我這里報錯,說找不到這個類。查了官方文檔,要用 \OpenApi\Generator::scan()。有可能是新版本做了修改。

c)、設置路由

api.php 或者 web.php都行,路徑不同而已。本人選擇api.php。所以訪問路徑要加個前綴:/api。

Route::group(["prefix" => "swagger"], function () {
    Route::get("json", [\App\Http\Controllers\SwaggerController::class, "getJSON"]);
});

d)、測試訪問

訪問 http://localhost:8000/api/swagger/json 如果看到頁面正常輸出json,說明配置成功了。不然就按錯誤提示一項項去修改吧。

三、使用

GET方法

    /** 
     * @OA\Get(
     *     tags={"數據管理"},
     *     summary="數據查詢",
     *     path="/api/data/search",
     *     @OA\Response(response="200", description="Display a listing of projects."),
     *     @OA\Parameter(
     * description="數據名稱",
     * in="query",
     * name="name",
     * required=false,
     * @OA\Schema(type="string"),
     *     ),
     *     @OA\Parameter(
     * description="狀態",
     * in="query",
     * name="status",
     * required=false,
     * @OA\Schema(type="integer"),
     *     ),
     *     @OA\Parameter(
     * description="每頁記錄數",
     * in="query",
     * name="page-size",
     * required=false,
     * @OA\Schema(type="integer"),
     *     ),
     *     @OA\Parameter(
     * description="當前頁碼",
     * in="query",
     * name="current-page",
     * required=false,
     * @OA\Schema(type="integer"),
     *     ),
     * )
     */

這里面:

in 表示該參數出現在哪里。 query的話就是用&拼在url后面; path 類似于 /api/data/search/{param} ; header就是包含在 request header里;cookie 自然是放在cookie里。

這個版本里formData, body這些都沒有了。

required 看名字就知道 true是必填項,false是選填項。

POST方法

    /** 
     * @OA\Post(
     *     tags={"數據管理"},
     *     summary="添加數據",
     *     path="/api/data",
     *     @OA\Response(response="200", description="Display a listing of projects."),
     *     @OA\RequestBody(
     * @OA\MediaType(
     *     mediaType="x-www-form-urlencoded",
     *     @OA\Schema(
     * ref="#/components/schemas/DataModel",
     *     ),
     * ),
     *     ),
     * )
     */

因為本人的前端代碼post都是表單提交,所以這里的post方法要用@OA\RequestBody。

@OA\Parameter是參數,是可以放到url上,但是post的表單提交,數據是不出現在url上的。

@OA\MediaType 這個: x-www-form-urlencoded 表單提交;application/json 提交json格式的數據;multipart/form-data 文件上傳;

     *     @OA\Schema(
     * ref="#/components/schemas/DataModel",
     *     ),

這個是關聯到一個已經定義好的schema上,省得使用相同數據的每個接口注釋里都寫一遍。

這里也可以單獨寫:

 * @OA\Schema(
 *   required={"name", "code"},
 *   @OA\Property(property="name", type="string", title="姓名", description="這是姓名"),
 *   @OA\Property(property="code", type="string", title="代碼", description="這是代碼"),
 *   @OA\Property(property="phone", type="string", title="電話", description="這是電話"),
 * ),

上面這樣,有多少個參數就寫多少個@OA\Property。

這里的required是個數組,寫在里面的都是必填項。

其它方法都差不多,以后有用到了再記錄。

四、顯示swagger ui

下載swagger ui的代碼: https://github.com/swagger-api/swagger-ui/releases

解壓后,把目錄里的dist目錄,復制到laravel的public目錄下面,改名為swagger-ui。文件名隨便取,不沖突就行。

找開這個swagger-ui目錄下的swagger-initializer.js,內容大概如下:

window.onload = function() {
  //<editor-fold desc="Changeable Configuration Block">
  // the following lines will be replaced by docker/configurator, when it runs in a docker-container
  window.ui = SwaggerUIBundle({
    url: "/api/swagger/json",
    dom_id: "#swagger-ui",
    deepLinking: true,
    presets: [
      SwaggerUIBundle.presets.apis,
      SwaggerUIStandalonePreset
    ],
    plugins: [
      SwaggerUIBundle.plugins.DownloadUrl
    ],
    layout: "StandaloneLayout"
  });
  //</editor-fold>
};

主要是改 url這項。改成前面設的路由地址。這里是 "/api/swagger/json"。

完成后訪問 http://localhost:8000/swagger-ui/ 就能看到swagger形成的api文檔了。

到此這篇關于PHP使用Swagger生成好看的API文檔的文章就介紹到這了,更多相關PHP Swagger內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费看一区二区三区| 91精品美女| 国产精品日韩精品在线播放| 日韩精品看片| www在线观看黄色| 麻豆免费精品视频| 欧美在线看片| 日本va欧美va瓶| 国产一区二区高清| 夜夜嗨一区二区| 天堂资源在线亚洲| 亚洲va中文在线播放免费| 欧美一区精品| 国产精品一区三区在线观看| 中文字幕亚洲精品乱码| 日韩精品一二三| 欧美日韩中文一区二区| 国产尤物精品| 国产精品手机在线播放| 欧美精品一区二区久久| 国产精品tv| 首页国产欧美日韩丝袜| 精品一区二区三区中文字幕在线| 欧美精品一区二区三区精品| 奇米亚洲欧美| 亚洲黄色中文字幕| 亚洲一区激情| 97精品一区| 涩涩涩久久久成人精品| 婷婷综合福利| 欧美伊人久久| 国产精品日本一区二区不卡视频 | 日韩精品影视| 欧美日韩国产综合网| 中文字幕日韩亚洲| 久久精品五月| 午夜精品婷婷| 亚洲精品看片| 久久精品国产在热久久| 四虎4545www国产精品| 日韩午夜免费| 福利片在线一区二区| 日韩午夜电影| 欧美a一区二区| 福利片在线一区二区| 最新日韩av| 青青伊人久久| 高清不卡亚洲| 国产乱人伦精品一区| 午夜国产精品视频免费体验区| 欧美亚洲综合视频| 伊人久久成人| 91一区二区三区四区| 天堂va欧美ⅴa亚洲va一国产| 日韩精品麻豆| 国产精品久久久久毛片大屁完整版| 久久男女视频| 精品视频91| 日韩高清欧美激情| 国产第一亚洲| 国产麻豆一区二区三区精品视频| 极品日韩av| 中文字幕在线官网| 麻豆网站免费在线观看| 老司机免费视频一区二区三区| 亚洲视频电影在线| 国产午夜精品一区二区三区欧美| 欧美国产先锋| 欧美亚洲一区二区三区| 亚洲天堂日韩在线| 久久久精品久久久久久96| 老鸭窝一区二区久久精品| 亚洲+小说+欧美+激情+另类| 999久久久精品国产| 国产日韩亚洲| 日韩**一区毛片| 欧美日韩一区自拍| 日韩精品第二页| 亚洲有吗中文字幕| 国产精品对白久久久久粗| 国产伦理久久久久久妇女| 日本不卡不码高清免费观看 | 国产一卡不卡| 欧美永久精品| 久久xxx视频| 亚洲精品亚洲人成在线观看| 亚洲欧洲一区二区天堂久久| 1024精品一区二区三区| 伊人久久亚洲热| 国产精品免费看| 亚洲第一区色| 美美哒免费高清在线观看视频一区二区| 亚洲一区二区三区高清不卡| 在线亚洲自拍| 亚洲ab电影| 国产精品一区2区3区| 麻豆一区二区三| 亚洲啊v在线| 久久亚洲精品伦理| 国产精品日韩精品中文字幕| 久久亚州av| 日韩欧美精品综合| 色老板在线视频一区二区| 日本a级不卡| 三级欧美韩日大片在线看| 99精品在线| 精品捆绑调教一区二区三区| 精品视频一区二区三区在线观看 | 麻豆国产91在线播放| 亚州av一区| 亚洲视频国产精品| 久久国产精品毛片| 亚洲婷婷在线| 色婷婷综合网| 国产一区二区三区久久| 美腿丝袜亚洲一区| 欧美激情一区| 国产精品mv在线观看| 国产精品久久国产愉拍| 久久久精品区| 蜜桃91丨九色丨蝌蚪91桃色| 精品视频网站| 免费的成人av| 精品国产欧美日韩| 综合亚洲视频| 欧美三区四区| 国产剧情一区| 一区二区国产精品| 国产一区国产二区国产三区| 日韩影院免费视频| 1000部精品久久久久久久久| 国产精品一站二站| 蜜臀av一区二区在线免费观看| 国产成人精品免费视| 丝袜诱惑制服诱惑色一区在线观看 | 免费一级欧美片在线观看网站| 99国产精品久久久久久久| 国产欧美精品| 日本国产亚洲| 日韩区欧美区| 免费成人在线影院| 欧美特黄视频| 9久re热视频在线精品| 亚洲激情精品| 国产亚洲午夜| 亚洲一区二区三区高清不卡| 免费在线观看日韩欧美| 久久亚洲欧洲| 久久久久九九精品影院| 国产网站在线| 国产精品人人爽人人做我的可爱| 欧美女激情福利| 狠狠操综合网| 91亚洲精品视频在线观看| 国产精品久一| 久久久9色精品国产一区二区三区| 女同性一区二区三区人了人一| 最新亚洲国产| 岛国av免费在线观看| 欧美美女一区| 久久精品凹凸全集| 国产精品成人一区二区不卡| 激情久久久久久久| 日本不卡视频在线| 精品久久网站| 日韩亚洲在线| 美腿丝袜在线亚洲一区| 国产一区二区三区久久| 喷白浆一区二区| 国内一区二区三区| 日韩中文欧美在线| 精品国内亚洲2022精品成人| 国产免费成人| 日本在线高清| 国产人成精品一区二区三| 日韩国产一区二区| 欧美亚洲色图校园春色| 激情久久久久久| 国产精品久久久久久模特 | 日本免费久久| 日韩av中文字幕一区二区| 精品一区在线| 国产一区二区亚洲| 亚洲精品91| 国产日韩欧美在线播放不卡| 日韩不卡视频在线观看| 一二三区精品| 亚洲va中文在线播放免费| 日韩精品一区二区三区av| 成人影视亚洲图片在线| 欧美日韩国产一区精品一区| 欧美日韩亚洲一区三区| 欧美91精品| 97久久超碰| 九九久久婷婷| 国产精品久久久久久久久久10秀| 日本在线视频一区二区| 久久高清免费| 精品中文字幕一区二区三区四区| 日韩专区在线视频|