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

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:276日期:2022-06-06 16:53:10
目錄
  • 一、安裝swagger-php
  • 二、設(shè)置一個輸出api文檔數(shù)據(jù)的接口
  • 三、使用
  • 四、顯示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里。這個東西本人用不到,就不研究了。

二、設(shè)置一個輸出api文檔數(shù)據(jù)的接口

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)、設(shè)置路由

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,說明配置成功了。不然就按錯誤提示一項(xiàng)項(xiàng)去修改吧。

三、使用

GET方法

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

這里面:

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

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

required 看名字就知道 true是必填項(xiàng),false是選填項(xiàng)。

POST方法

    /** 
     * @OA\Post(
     *     tags={"數(shù)據(jù)管理"},
     *     summary="添加數(shù)據(jù)",
     *     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",
     *     ),
     * ),
     *     ),
     * )
     */

因?yàn)楸救说那岸舜apost都是表單提交,所以這里的post方法要用@OA\RequestBody。

@OA\Parameter是參數(shù),是可以放到url上,但是post的表單提交,數(shù)據(jù)是不出現(xiàn)在url上的。

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

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

這個是關(guān)聯(lián)到一個已經(jīng)定義好的schema上,省得使用相同數(shù)據(jù)的每個接口注釋里都寫一遍。

這里也可以單獨(dú)寫:

 * @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="這是電話"),
 * ),

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

這里的required是個數(shù)組,寫在里面的都是必填項(xiàng)。

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

四、顯示swagger ui

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

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

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

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這項(xiàng)。改成前面設(shè)的路由地址。這里是 "/api/swagger/json"。

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

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

標(biāo)簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲欧美日韩国产一区二区| 亚洲一区二区三区免费在线观看| 91亚洲国产高清| 免费日韩成人| 国产亚洲一区二区三区啪| 国产亚洲欧美日韩精品一区二区三区 | 亚洲成人va| 欧美久久精品一级c片| 噜噜噜久久亚洲精品国产品小说| 日韩精品一卡二卡三卡四卡无卡| 日本va欧美va瓶| 麻豆一区二区三| 99精品综合| 亚洲一区二区三区免费在线观看| 亚洲三级精品| 三上亚洲一区二区| 日本精品影院| 亚洲精品九九| 性欧美videohd高精| 亚洲欧美日韩精品一区二区| 国产精品1luya在线播放| 精品免费av在线| 欧美欧美黄在线二区| 中文在线а√在线8| 婷婷亚洲精品| 亚洲制服少妇| 亚洲三级观看| 91看片一区| 国产日韩中文在线中文字幕| 欧美三级精品| 国产欧美88| 蜜臀91精品国产高清在线观看| 在线观看亚洲精品福利片| 国产在线视频欧美一区| 日韩三级视频| 欧美女激情福利| 成人在线丰满少妇av| 亚洲精品四区| 秋霞影院一区二区三区| 美女性感视频久久| 午夜久久av | 精品久久久久中文字幕小说| 蜜臀国产一区二区三区在线播放| 免费一二一二在线视频| 国产精品一区亚洲| 日韩精品中文字幕一区二区| 午夜在线播放视频欧美| 精品丝袜在线| 97精品国产| 精品欠久久久中文字幕加勒比| 亚洲视频电影在线| 欧美另类专区| 亚洲电影在线一区二区三区| 久久精品二区亚洲w码| 日本午夜免费一区二区 | 欧美午夜精彩| 久久网站免费观看| 午夜日本精品| 蜜臀va亚洲va欧美va天堂 | 久久久久欧美精品| 日韩精品午夜| 日韩视频精品在线观看| 精品一区在线| 99热精品久久| 亚洲中午字幕| 亚洲精品看片| 日韩成人精品一区二区三区 | 午夜国产一区二区| 婷婷综合激情| 在线视频精品| 亚洲精品无播放器在线播放| 亚洲精品免费观看| 国产精品网站在线看| 久久精品女人| 欧美激情国产在线| 伊人久久大香线蕉av不卡| 黑丝美女一区二区| 中文字幕日韩高清在线| 国产亚洲精aa在线看| 人人草在线视频| 蜜桃视频第一区免费观看| 久久97视频| 免费看的黄色欧美网站| 久久天堂影院| 亚洲精品美女91| 日本精品影院| 国产剧情在线观看一区| 欧美成人日韩| 青草综合视频| 久久天堂精品| 天堂av在线一区| 蜜桃久久久久| 亚洲影视一区二区三区| 日韩国产一区二区| 日韩av一区二区三区四区| 日韩中文影院| 国产另类在线| 免费精品视频在线| 日韩精品首页| 精品日韩一区| 亚洲一区av| 日韩av首页| 狠狠久久伊人| 国产九一精品| 四虎成人精品一区二区免费网站| 国产精品第十页| 玖玖玖国产精品| 欧美午夜精彩| 三上亚洲一区二区| 国产精品美女在线观看直播| 亚洲一区观看| 最新亚洲一区| 91精品一区国产高清在线gif | 精品一区欧美| 国产精品黄色| 欧美欧美黄在线二区| 中文字幕亚洲精品乱码| 蜜桃视频一区二区三区| 红桃视频亚洲| 国产亚洲一区在线| 91精品国产调教在线观看| 成人看片网站| 亚洲性视频h| 成人精品中文字幕| 欧美色图一区| 99综合视频| 日韩中文字幕91| 久久亚洲影院| 日韩美女精品| 日韩二区三区在线观看| 国产精品mm| 国产精品99视频| 精品捆绑调教一区二区三区 | 天堂网av成人| 日韩视频不卡| 日韩av在线免费观看不卡| 欧美日韩一区二区三区四区在线观看 | 国产极品模特精品一二| 欧美激情aⅴ一区二区三区| 国产精品九九| 日韩国产综合| 91成人精品| 日本中文字幕不卡| 国产精品18| 91精品亚洲| 日韩不卡在线观看日韩不卡视频| 国产精品国码视频| 欧美综合另类| 91精品国产自产精品男人的天堂| 美日韩一区二区三区| 国产成人精品亚洲日本在线观看| 成人免费网站www网站高清| 99综合视频| 精品久久精品| 亚洲女人av| 色综合狠狠操| 日韩中文字幕无砖| 国产欧美一区二区三区精品酒店| 91精品91| 精品国产亚洲一区二区三区在线 | 免费人成黄页网站在线一区二区| 日韩美女精品| 久久久久久久久丰满| 蜜桃视频一区二区三区在线观看| 日韩综合在线| 在线精品一区二区| 日韩免费福利视频| 国产精成人品2018| 亚洲精品乱码久久久久久蜜桃麻豆| 天堂中文在线播放| 久久国产生活片100| 另类av一区二区| 91tv亚洲精品香蕉国产一区| 久久精品凹凸全集| 日韩精品一二三四| 99精品在线观看| 精品视频一二| 91成人精品在线| 亚洲一区久久| 午夜精品婷婷| 捆绑调教日本一区二区三区| 国产亚洲人成a在线v网站| 亚洲一本视频| 久久夜夜操妹子| 国产+成+人+亚洲欧洲在线| 精品高清久久| 九九久久国产| 国产精品chinese| 国产精品久一| 日本少妇精品亚洲第一区| 国产精品日韩久久久| 91精品国产调教在线观看| 黄色欧美在线| 国产精品a久久久久| 国产毛片久久久| 亚洲理论在线| 男女男精品视频网| 黑丝美女一区二区| 99国产精品自拍| 蜜桃视频一区二区|