【奇淫技巧】API接口字段table文檔轉代碼工具

今天做一個視頻接口對接,發現對方提供的文檔沒有json格式,無法自動生成請求和響應對象

json自動生成C#類的工具

http://tool.sufeinet.com/Creater/JsonClassGenerator.aspx

 

所以拿到對方文檔表格之後,寫了這個js工具,自動生成C#類屬性和註釋,省去了敲無效代碼的麻煩

 

接口地址

https://doc.bokecc.com/live/live_http.html

 

對方文檔格式

 

我們需要的字段屬性格式,上面是字段註釋,下面是屬性名和json的key

        /// <summary>
        /// CC賬戶ID 
        /// </summary>
        [JsonProperty("userid")]
        public string Userid { get; set; }

 

如果我們一個字段一個字段的敲,得弄到猴年馬月去,copy也挺費勁的

 

所以我們將對方的table直接複製到一個html裏,寫下面的js代碼

<!DOCTYPE html>
<html>
<head>
    <meta charset="GB2312">
    <title></title>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
$(document).ready(function(){

    var log = "";

    $('table').eq(0).find('tr').each(function () {
        var demo = '\
        /// <summary>\r\n\
        /// @@desc@@\r\n\
        /// </summary>\r\n\
        [JsonProperty("@@name@@")]\r\n\
        public string @@nameuper@@ { get; set; }\r\n\
        ';

        var td = $(this).find('td');
        var name = td.eq(0).html();
        var nameuper = name.charAt(0).toUpperCase() + name.slice(1);
        var desc = td.eq(1).html()  + " " + td.eq(2).html();

        demo = demo.replace('@@name@@', name);
        demo = demo.replace('@@nameuper@@', nameuper);
        demo = demo.replace('@@desc@@', desc);

        log = log + demo + '\r\n';
    })

    console.log(log);

});
    </script>
</head>
<body>

    <table width="900px">
        <tbody>
            <tr style="background:#F60;color:#FFF">
                <td>參數</td>
                <td>說明</td>
                <td width="20%">備註</td>
            </tr>
            <tr>
                <td>userid</td>
                <td>CC賬戶ID</td>
                <td></td>
            </tr>
            <tr>
                <td>name</td>
                <td>直播間名稱,最大字符40</td>
                <td></td>
            </tr>
            <tr>
                <td>desc</td>
                <td>直播間描述,最大字符5000</td>
                <td></td>
            </tr>
            <tr>
                <td>templatetype</td>
                <td>直播模板類型,請求模板信息接口可獲得模板類型的詳細信息。</td>
                <td></td>
            </tr>
            <tr>
                <td>authtype</td>
                <td>驗證方式,0:接口驗證,需要填寫下面的checkurl;1:密碼驗證,需要填寫下面的playpass;2:免密碼驗證</td>
                <td></td>
            </tr>
            <tr>
                <td>publisherpass</td>
                <td>推流端密碼,即講師密碼</td>
                <td></td>
            </tr>
            <tr>
                <td>assistantpass</td>
                <td>助教端密碼</td>
                <td></td>
            </tr>
            <tr>
                <td>playpass</td>
                <td>播放端密碼</td>
                <td>可選</td>
            </tr>
            <tr>
                <td>checkurl</td>
                <td>驗證地址</td>
                <td>可選</td>
            </tr>

            <tr>
                <td>barrage</td>
                <td>是否開啓彈幕。0:不開啓;1:開啓</td>
                <td>可選,默認爲0</td>

            </tr>
            <tr>
                <td>foreignpublish</td>
                <td>是否開啓第三方推流。0:不開啓;1:開啓</td>
                <td>可選,默認爲0,開啓時必須開啓網頁登錄的主持人模式</td>
            </tr>
            <tr>
                <td>openlowdelaymode</td>
                <td>開啓直播低延時模式。0:不開啓;1:開啓</td>
                <td>可選,默認爲0</td>
            </tr>
            <tr>
                <td>showusercount</td>
                <td>在頁面顯示當前在線人數。0:不顯示;1:顯示</td>
                <td>可選,默認顯示當前人數,模板一暫不支持此設置</td>
            </tr>
            <tr>
                <td>openhostmode</td>
                <td>開啓主持人模式,"0"表示不開啓;"1"表示開啓</td>
                <td>可選,默認爲0,開通主持人模式權限後方可設置</td>
            </tr>
            <tr>
                <td>hostloginmode</td>
                <td>主持人登錄模式,"0"表示網頁登錄;"1"表示客戶端登錄</td>
                <td>可選,默認爲0</td>
            </tr>
            <tr>
                <td>warmvideoid</td>
                <td>插播暖場視頻,填寫同一賬號下雲點播視頻vid</td>
                <td>可選,默認關閉;參數值爲空,表示關閉</td>
            </tr>
            <tr>
                <td>livestarttime</td>
                <td>直播開始時間;格式:yyyy-MM-dd HH:mm:ss</td>
                <td>可選,默認爲空</td>
            </tr>
            <tr>
                <td>playerbackgroundhint</td>
                <td>播放器提示語。未直播時播放器將顯示該提示語</td>
                <td>可選,最多15個字符</td>
            </tr>
            <tr>
                <td>manuallyrecordmode</td>
                <td>手動錄製模式。0:關閉;1:開啓</td>
                <td>可選,默認關閉</td>
            </tr>
            <tr>
                <td>clientdocpermissions</td>
                <td>講師文檔權限。0:關閉;1:開啓</td>
                <td>可選,默認關閉;</td>
            </tr>
            <tr>
                <td>repeatedloginsetting</td>
                <td>重複登錄設置;0:允許後進入者登錄;1:禁止後進入者登錄,對講師端和觀看端生效</td>
                <td>可選,默認0</td>
            </tr>
            <tr>
                <td>maxaudiencenum</td>
                <td>直播間併發人數上限</td>
                <td>可選,默認爲0,表示不做限制</td>
            </tr>
            <tr>
                <td>documentdisplaymode</td>
                <td>文檔顯示模式。1:適合窗口;2:適合寬度</td>
                <td>可選,適合窗口</td>
            </tr>
            <tr>
                <td>openlivecountdown</td>
                <td>倒計時功能。0:關閉;1:開啓</td>
                <td>可選,默認關閉</td>
            </tr>
            <tr>
                <td>showlectueronlinenum</td>
                <td>講師端顯示在線人數。0:不顯示;1:顯示</td>
                <td>可選,默認顯示</td>
            </tr>
            <tr>
                <td>showassistonlinenum</td>
                <td>助教主持人端顯示在線人數。0:不顯示;1:顯示</td>
                <td>可選,默認顯示</td>
            </tr>
            <tr>
                <td>openmarquee</td>
                <td>跑馬燈功能。0:關閉;1:開啓</td>
                <td>可選,默認爲0</td>
            </tr>
            <tr>
                <td>alarms</td>
                <td>直播提醒設置,格式如下:[{"time":"","desc":""},{"time":"","desc":""},{"time":"","desc":""}] time爲提醒時間點(單位:分鐘),類型爲字符串,取值範圍1-1000的整數;desc爲提醒內容,類型爲字符串,最多20個字符</td>
                <td>可選,默認爲空</td>
            </tr>
        </tbody>
    </table>

</body>
</html>

 

通過自己組織console log的內容,生成代碼

        /// <summary>
        /// 說明 備註
        /// </summary>
        [JsonProperty("參數")]
        public string 參數 { get; set; }
        
        /// <summary>
        /// CC賬戶ID 
        /// </summary>
        [JsonProperty("userid")]
        public string Userid { get; set; }
        
        /// <summary>
        /// 直播間名稱,最大字符40 
        /// </summary>
        [JsonProperty("name")]
        public string Name { get; set; }
        
        /// <summary>
        /// 直播間描述,最大字符5000 
        /// </summary>
        [JsonProperty("desc")]
        public string Desc { get; set; }
        
        /// <summary>
        /// 直播模板類型,請求模板信息接口可獲得模板類型的詳細信息。 
        /// </summary>
        [JsonProperty("templatetype")]
        public string Templatetype { get; set; }
        
        /// <summary>
        /// 驗證方式,0:接口驗證,需要填寫下面的checkurl;1:密碼驗證,需要填寫下面的playpass;2:免密碼驗證 
        /// </summary>
        [JsonProperty("authtype")]
        public string Authtype { get; set; }
        
        /// <summary>
        /// 推流端密碼,即講師密碼 
        /// </summary>
        [JsonProperty("publisherpass")]
        public string Publisherpass { get; set; }
        
        /// <summary>
        /// 助教端密碼 
        /// </summary>
        [JsonProperty("assistantpass")]
        public string Assistantpass { get; set; }
        
        /// <summary>
        /// 播放端密碼 可選
        /// </summary>
        [JsonProperty("playpass")]
        public string Playpass { get; set; }
        
        /// <summary>
        /// 驗證地址 可選
        /// </summary>
        [JsonProperty("checkurl")]
        public string Checkurl { get; set; }
        
        /// <summary>
        /// 是否開啓彈幕。0:不開啓;1:開啓 可選,默認爲0
        /// </summary>
        [JsonProperty("barrage")]
        public string Barrage { get; set; }
        
        /// <summary>
        /// 是否開啓第三方推流。0:不開啓;1:開啓 可選,默認爲0,開啓時必須開啓網頁登錄的主持人模式
        /// </summary>
        [JsonProperty("foreignpublish")]
        public string Foreignpublish { get; set; }
        
        /// <summary>
        /// 開啓直播低延時模式。0:不開啓;1:開啓 可選,默認爲0
        /// </summary>
        [JsonProperty("openlowdelaymode")]
        public string Openlowdelaymode { get; set; }
        
        /// <summary>
        /// 在頁面顯示當前在線人數。0:不顯示;1:顯示 可選,默認顯示當前人數,模板一暫不支持此設置
        /// </summary>
        [JsonProperty("showusercount")]
        public string Showusercount { get; set; }
        
        /// <summary>
        /// 開啓主持人模式,"0"表示不開啓;"1"表示開啓 可選,默認爲0,開通主持人模式權限後方可設置
        /// </summary>
        [JsonProperty("openhostmode")]
        public string Openhostmode { get; set; }
        
        /// <summary>
        /// 主持人登錄模式,"0"表示網頁登錄;"1"表示客戶端登錄 可選,默認爲0
        /// </summary>
        [JsonProperty("hostloginmode")]
        public string Hostloginmode { get; set; }
        
        /// <summary>
        /// 插播暖場視頻,填寫同一賬號下雲點播視頻vid 可選,默認關閉;參數值爲空,表示關閉
        /// </summary>
        [JsonProperty("warmvideoid")]
        public string Warmvideoid { get; set; }
        
        /// <summary>
        /// 直播開始時間;格式:yyyy-MM-dd HH:mm:ss 可選,默認爲空
        /// </summary>
        [JsonProperty("livestarttime")]
        public string Livestarttime { get; set; }
        
        /// <summary>
        /// 播放器提示語。未直播時播放器將顯示該提示語 可選,最多15個字符
        /// </summary>
        [JsonProperty("playerbackgroundhint")]
        public string Playerbackgroundhint { get; set; }
        
        /// <summary>
        /// 手動錄製模式。0:關閉;1:開啓 可選,默認關閉
        /// </summary>
        [JsonProperty("manuallyrecordmode")]
        public string Manuallyrecordmode { get; set; }
        
        /// <summary>
        /// 講師文檔權限。0:關閉;1:開啓 可選,默認關閉;
        /// </summary>
        [JsonProperty("clientdocpermissions")]
        public string Clientdocpermissions { get; set; }
        
        /// <summary>
        /// 重複登錄設置;0:允許後進入者登錄;1:禁止後進入者登錄,對講師端和觀看端生效 可選,默認0
        /// </summary>
        [JsonProperty("repeatedloginsetting")]
        public string Repeatedloginsetting { get; set; }
        
        /// <summary>
        /// 直播間併發人數上限 可選,默認爲0,表示不做限制
        /// </summary>
        [JsonProperty("maxaudiencenum")]
        public string Maxaudiencenum { get; set; }
        
        /// <summary>
        /// 文檔顯示模式。1:適合窗口;2:適合寬度 可選,適合窗口
        /// </summary>
        [JsonProperty("documentdisplaymode")]
        public string Documentdisplaymode { get; set; }
        
        /// <summary>
        /// 倒計時功能。0:關閉;1:開啓 可選,默認關閉
        /// </summary>
        [JsonProperty("openlivecountdown")]
        public string Openlivecountdown { get; set; }
        
        /// <summary>
        /// 講師端顯示在線人數。0:不顯示;1:顯示 可選,默認顯示
        /// </summary>
        [JsonProperty("showlectueronlinenum")]
        public string Showlectueronlinenum { get; set; }
        
        /// <summary>
        /// 助教主持人端顯示在線人數。0:不顯示;1:顯示 可選,默認顯示
        /// </summary>
        [JsonProperty("showassistonlinenum")]
        public string Showassistonlinenum { get; set; }
        
        /// <summary>
        /// 跑馬燈功能。0:關閉;1:開啓 可選,默認爲0
        /// </summary>
        [JsonProperty("openmarquee")]
        public string Openmarquee { get; set; }
        
        /// <summary>
        /// 直播提醒設置,格式如下:[{"time":"","desc":""},{"time":"","desc":""},{"time":"","desc":""}] time爲提醒時間點(單位:分鐘),類型爲字符串,取值範圍1-1000的整數;desc爲提醒內容,類型爲字符串,最多20個字符 可選,默認爲空
        /// </summary>
        [JsonProperty("alarms")]
        public string Alarms { get; set; }

 

我們將代碼複製到項目裏即可

 

效果如下

 

 程序員就要提(xue)高(hui)效(tou)率(lan)嘛

 

哈哈哈 搞定收工

 

專心寫業務邏輯就行了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章