国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php - Api 接口寫法規范和要求

k00baa / 938人閱讀

摘要:前言說明是一個文檔生成工具可以根據代碼注釋生成文檔從注釋生成靜態網頁文檔,不僅支持項目版本號,還支持版本號安裝系統需要安裝略安裝有些系統需要權限來安裝執行生成這個文檔的生成規則是對于項目中我們使用封裝了一個函數生成文檔注意分組名不

前言

說明
apidoc是一個API文檔生成工具, apidoc可以根據代碼注釋生成web api文檔, apidoc從注釋生成靜態html網頁文檔,不僅支持項目版本號,還支持api版本號

安裝

A). 系統需要安裝nodejs(略)

B). 安裝apidoc

# 有些系統需要sudo 權限來安裝
$ npm install apidoc -g

C). 執行生成

# 這個文檔的生成規則是 
# apidoc 
#      -i code_dir
#      -o output_dir
$ apidoc -i myapp/ -o apidoc/ 

# 對于項目中我們使用 laravel artisan 封裝了一個函數
# 生成 api doc 文檔
$ php artisan lemon:doc apidoc

注意: 分組名不支持中文,可修改

使用

A) 生成文檔

$ apidoc -i myapp/ -o doc/api [-c ./] -f ".*.js$" 

-i 表示輸入,后面是文件夾路徑

-o 表示輸出,后面是文件夾路徑

默認會帶上-c,在當前路徑下尋找配置文件 apidoc.json,如果找不到則會在package.json中尋找 "apidoc": { }

-f 為文件過濾,后面是正則表達式,示例為只選著js文件

-e 的選項,表示要排除的文件/文件夾,也是使用正則表達式

B) 項目配置

{
    "name" : "項目名",
    "version": "1.0.0",
    "title": "mysails-瀏覽器標題",
    "description": "description"
}

我們的配置存放在根目錄 package.json 文件中.

參數說明和示例

apidoc 支持如下關鍵字:(下面 [ ] 中括號中表示是可選寫的內容,使用時不用加 [ ] 中括號。)

@api {method} path [title]
    只有使用@api標注的注釋塊才會在解析之后生成文檔,title會被解析為導航菜單(@apiGroup)下的小菜單
    method可以有空格,如{POST GET}
  
@apiGroup name
    分組名稱,被解析為導航欄菜單

@apiName name
    接口名稱,在同一個@apiGroup下,名稱相同的@api通過@apiVersion區分,否者后面@api會覆蓋前面定義的@api

@apiDescription text
    接口描述,支持html語法

@apiParam [(group)] [{type}] [field=defaultValue] [description]
    詳細介紹見: http://apidocjs.com/#param-api-param
    
@apiVersion verison
    接口版本,major.minor.patch的形式
    
@apiIgnore [hint]
    apidoc會忽略使用@apiIgnore標注的接口,hint為描述
    
@apiSampleRequest url
  接口測試地址以供測試,發送請求時,@api method必須為POST/GET等其中一種
  
@apiDefine name [title] [description]
    定義一個注釋塊(不包含@api),配合@apiUse使用可以引入注釋塊
    在@apiDefine內部不可以使用@apiUse
@apiUse name
     引入一個@apiDefine的注釋塊

@apiHeader [(group)] [{type}] [field=defaultValue] [description]

@apiError [(group)] [{type}] field [description]

@apiSuccess [(group)] [{type}] field [description]
    用法基本類似,分別描述請求參數、頭部,響應錯誤和成功
    group表示參數的分組,type表示類型(不能有空格),入參可以定義默認值(不能有空格),field上使用[]中擴號表示該參數是可選參數
    
@apiParamExample [{type}] [title] example

@apiHeaderExample [{type}] [title] example

@apiErrorExample [{type}] [title] example

@apiSuccessExample [{type}] [title] example
    用法完全一致,但是type表示的是example的語言類型
  example書寫成什么樣就會解析成什么樣,所以最好是書寫的時候注意格式化,(許多編輯器都有列模式,可以使用列模式快速對代碼添加*號)
寫法規范 參數對齊
/**
 * @api                 {get} /api_prefix/check_verification [O]驗證驗證碼
 * @apiVersion          1.0.0
 * @apiName             HomeCheckVerification
 * @apiGroup            Home
 * @apiParam   {String} mobile       手機號
 * @apiParam   {String} captcha      驗證碼
 */
public function checkVerification(){}
apiName命名規范

apiName 的命名規范是 apiGroup + functionName;

apiName 的寫法規范是 首字母大寫的駝峰模式

例如上面的命名規范是

apiGroup : Home
apiName  : HomeCheckVerification
返回值約定

數字類型, 需要轉換成int 類型(返回的json 串中不需要有引號包裹)

文字類型的, 需要轉換成 string 類型

返回值中不允許存在 null

返回值對齊

返回的類型值, 參數值, 說明必須對齊

返回的參數值和真正返回的內容值必須填寫完整

/**
 * @api                 {get} /api_prefix/version [O]檢測新版本(Android)
 * @apiVersion          1.0.0
 * @apiName             HomeVersion
 * @apiGroup            Home
 * @apiParam   {String}  version        版本號
 * @apiSuccess {String}  download_url   下載地址
 * @apiSuccess {String}  description    描述
 * @apiSuccess {String}  version        版本
 * @apiSuccessExample  data:
 * {
 *     "download_url": "http://domain.com/1.1.1.apk",
 *     "description": "修改bug若干, 增加微信支付功能",
 *     "version": "1.1.1"
 * }
 */
public function version()
路由定義

api 路由文件存放在 app/Http/Routes/ 文件夾下

Routes/
    api_dailian.php
    api_up.php
    ...
使用的PHP組件

系統使用 dinggo 作為 api的封裝組件

dingo/api 中文文檔

其他說明

A). 接口命名

lists   => 列表
create  => 創建
edit    => 編輯
delete  => 刪除

B). 參數命名

例如 A下的傳遞參數, 我們應當使用  title 而不能使用

C). 路由命名

路由的名稱和坐在分組還有函數名進行匹配, 使用蛇形寫法
/**
 * @api                 {get} /dailian/bank/lists [O][B]銀行賬戶列表
 * @apiVersion          1.0.0
 * @apiName             UserBankList
 * @apiGroup            User
 * @apiSuccess {String} id                  賬號ID
 * @apiSuccess {String} bank_account        賬號信息
 * @apiSuccess {String} bank_true_name      真實姓名
 * @apiSuccess {String} bank_type           賬號類型 : 支付寶
 * @apiSuccess {String} note                備注
 * @apiSuccessExample   成功返回:
 *  [
 *      {
 *          "id": 2,
 *          "bank_account": "123123123",
 *          "bank_true_name": "二狗",
 *          "bank_type": "支付寶",
 *          "note": ""
 *      }
 *  ]
 */
public function lists()

這里的命名是 api_dailian.bank_lists

D). 自營的接口無特殊返回不需要填寫說明

E). 接口中只能返回有意義的數據, 對app無用的數據不得返回

F). 列表為空也需要返回分頁

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26129.html

相關文章

  • 前端模塊化開發

    摘要:來源于阿賢博客模塊化今天給大家寫一篇關于前端模塊化開發知識點。前端模塊化開發那點歷史模塊化是指在解決某個復雜混雜問題時,依照一種分類的思維把問題進行系統性的分解以之處理。 來源于:阿賢博客 javascript模塊化 今天給大家寫一篇關于前端模塊化開發知識點。 前端模塊化開發那點歷史 模塊化: 是指在解決某個復雜、混雜問題時,依照一種分類的思維把問題進行系統性的分解以之處理。模塊...

    tianhang 評論0 收藏0
  • 【全文】狼叔:如何正確的學習Node.js

    摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學習簡介現在,越來越多的科技公司和開發者開始使用開發各種應用。 說明 2017-12-14 我發了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當不錯的,甚至連著名的hax賀老都很認同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...

    Edison 評論0 收藏0
  • 【全文】狼叔:如何正確的學習Node.js

    摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學習簡介現在,越來越多的科技公司和開發者開始使用開發各種應用。 說明 2017-12-14 我發了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當不錯的,甚至連著名的hax賀老都很認同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...

    fengxiuping 評論0 收藏0
  • PHP面向對象

    摘要:面向對象面向對象基礎面向對象什么是類具有相同屬性特征和方法行為的一系列個體的集合,類是一個抽象的概念。析構函數,當一個對象被銷毀前,自動調用。作用是為新克隆的對象進行初始化賦值對象序列化時,自動調用。使用抽象類的作用限制實例化。 面向對象 面向對象基礎 面向對象 什么是類? 具有相同屬性(特征)和方法(行為)的一系列個體的集合,類是一個抽象的概念。 什么是對象? 從類中,拿到的具有具體...

    seanlook 評論0 收藏0

發表評論

0條評論

k00baa

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<