【奇淫技巧】API接口字段table文档转代码工具

2021-06-18 07:04

阅读:629

标签:tar   助教   哈哈哈   直播   document   格式   VID   manual   targe   

今天做一个视频接口对接,发现对方提供的文档没有json格式,无法自动生成请求和响应对象

json自动生成C#类的工具

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

 

所以拿到对方文档表格之后,写了这个js工具,自动生成C#类属性和注释,省去了敲无效代码的麻烦

 

接口地址

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

 

对方文档格式

技术分享图片

 

我们需要的字段属性格式,上面是字段注释,下面是属性名和json的key

        /// 
        /// CC账户ID 
        /// 
        [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 =         /// \r\n        /// @@desc@@\r\n        /// \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>useridtd>
                td>CC账户IDtd>
                td>td>
            tr>
            tr>
                td>nametd>
                td>直播间名称,最大字符40td>
                td>td>
            tr>
            tr>
                td>desctd>
                td>直播间描述,最大字符5000td>
                td>td>
            tr>
            tr>
                td>templatetypetd>
                td>直播模板类型,请求模板信息接口可获得模板类型的详细信息。td>
                td>td>
            tr>
            tr>
                td>authtypetd>
                td>验证方式,0:接口验证,需要填写下面的checkurl;1:密码验证,需要填写下面的playpass;2:免密码验证td>
                td>td>
            tr>
            tr>
                td>publisherpasstd>
                td>推流端密码,即讲师密码td>
                td>td>
            tr>
            tr>
                td>assistantpasstd>
                td>助教端密码td>
                td>td>
            tr>
            tr>
                td>playpasstd>
                td>播放端密码td>
                td>可选td>
            tr>
            tr>
                td>checkurltd>
                td>验证地址td>
                td>可选td>
            tr>

            tr>
                td>barragetd>
                td>是否开启弹幕。0:不开启;1:开启td>
                td>可选,默认为0td>

            tr>
            tr>
                td>foreignpublishtd>
                td>是否开启第三方推流。0:不开启;1:开启td>
                td>可选,默认为0,开启时必须开启网页登录的主持人模式td>
            tr>
            tr>
                td>openlowdelaymodetd>
                td>开启直播低延时模式。0:不开启;1:开启td>
                td>可选,默认为0td>
            tr>
            tr>
                td>showusercounttd>
                td>在页面显示当前在线人数。0:不显示;1:显示td>
                td>可选,默认显示当前人数,模板一暂不支持此设置td>
            tr>
            tr>
                td>openhostmodetd>
                td>开启主持人模式,"0"表示不开启;"1"表示开启td>
                td>可选,默认为0,开通主持人模式权限后方可设置td>
            tr>
            tr>
                td>hostloginmodetd>
                td>主持人登录模式,"0"表示网页登录;"1"表示客户端登录td>
                td>可选,默认为0td>
            tr>
            tr>
                td>warmvideoidtd>
                td>插播暖场视频,填写同一账号下云点播视频vidtd>
                td>可选,默认关闭;参数值为空,表示关闭td>
            tr>
            tr>
                td>livestarttimetd>
                td>直播开始时间;格式:yyyy-MM-dd HH:mm:sstd>
                td>可选,默认为空td>
            tr>
            tr>
                td>playerbackgroundhinttd>
                td>播放器提示语。未直播时播放器将显示该提示语td>
                td>可选,最多15个字符td>
            tr>
            tr>
                td>manuallyrecordmodetd>
                td>手动录制模式。0:关闭;1:开启td>
                td>可选,默认关闭td>
            tr>
            tr>
                td>clientdocpermissionstd>
                td>讲师文档权限。0:关闭;1:开启td>
                td>可选,默认关闭;td>
            tr>
            tr>
                td>repeatedloginsettingtd>
                td>重复登录设置;0:允许后进入者登录;1:禁止后进入者登录,对讲师端和观看端生效td>
                td>可选,默认0td>
            tr>
            tr>
                td>maxaudiencenumtd>
                td>直播间并发人数上限td>
                td>可选,默认为0,表示不做限制td>
            tr>
            tr>
                td>documentdisplaymodetd>
                td>文档显示模式。1:适合窗口;2:适合宽度td>
                td>可选,适合窗口td>
            tr>
            tr>
                td>openlivecountdowntd>
                td>倒计时功能。0:关闭;1:开启td>
                td>可选,默认关闭td>
            tr>
            tr>
                td>showlectueronlinenumtd>
                td>讲师端显示在线人数。0:不显示;1:显示td>
                td>可选,默认显示td>
            tr>
            tr>
                td>showassistonlinenumtd>
                td>助教主持人端显示在线人数。0:不显示;1:显示td>
                td>可选,默认显示td>
            tr>
            tr>
                td>openmarqueetd>
                td>跑马灯功能。0:关闭;1:开启td>
                td>可选,默认为0td>
            tr>
            tr>
                td>alarmstd>
                td>直播提醒设置,格式如下:[{"time":"","desc":""},{"time":"","desc":""},{"time":"","desc":""}] time为提醒时间点(单位:分钟),类型为字符串,取值范围1-1000的整数;desc为提醒内容,类型为字符串,最多20个字符td>
                td>可选,默认为空td>
            tr>
        tbody>
    table>

body>
html>

 

通过自己组织console log的内容,生成代码

        /// 
        /// 说明 备注
        /// 
        [JsonProperty("参数")]
        public string 参数 { get; set; }
        
        /// 
        /// CC账户ID 
        /// 
        [JsonProperty("userid")]
        public string Userid { get; set; }
        
        /// 
        /// 直播间名称,最大字符40 
        /// 
        [JsonProperty("name")]
        public string Name { get; set; }
        
        /// 
        /// 直播间描述,最大字符5000 
        /// 
        [JsonProperty("desc")]
        public string Desc { get; set; }
        
        /// 
        /// 直播模板类型,请求模板信息接口可获得模板类型的详细信息。 
        /// 
        [JsonProperty("templatetype")]
        public string Templatetype { get; set; }
        
        /// 
        /// 验证方式,0:接口验证,需要填写下面的checkurl;1:密码验证,需要填写下面的playpass;2:免密码验证 
        /// 
        [JsonProperty("authtype")]
        public string Authtype { get; set; }
        
        /// 
        /// 推流端密码,即讲师密码 
        /// 
        [JsonProperty("publisherpass")]
        public string Publisherpass { get; set; }
        
        /// 
        /// 助教端密码 
        /// 
        [JsonProperty("assistantpass")]
        public string Assistantpass { get; set; }
        
        /// 
        /// 播放端密码 可选
        /// 
        [JsonProperty("playpass")]
        public string Playpass { get; set; }
        
        /// 
        /// 验证地址 可选
        /// 
        [JsonProperty("checkurl")]
        public string Checkurl { get; set; }
        
        /// 
        /// 是否开启弹幕。0:不开启;1:开启 可选,默认为0
        /// 
        [JsonProperty("barrage")]
        public string Barrage { get; set; }
        
        /// 
        /// 是否开启第三方推流。0:不开启;1:开启 可选,默认为0,开启时必须开启网页登录的主持人模式
        /// 
        [JsonProperty("foreignpublish")]
        public string Foreignpublish { get; set; }
        
        /// 
        /// 开启直播低延时模式。0:不开启;1:开启 可选,默认为0
        /// 
        [JsonProperty("openlowdelaymode")]
        public string Openlowdelaymode { get; set; }
        
        /// 
        /// 在页面显示当前在线人数。0:不显示;1:显示 可选,默认显示当前人数,模板一暂不支持此设置
        /// 
        [JsonProperty("showusercount")]
        public string Showusercount { get; set; }
        
        /// 
        /// 开启主持人模式,"0"表示不开启;"1"表示开启 可选,默认为0,开通主持人模式权限后方可设置
        /// 
        [JsonProperty("openhostmode")]
        public string Openhostmode { get; set; }
        
        /// 
        /// 主持人登录模式,"0"表示网页登录;"1"表示客户端登录 可选,默认为0
        /// 
        [JsonProperty("hostloginmode")]
        public string Hostloginmode { get; set; }
        
        /// 
        /// 插播暖场视频,填写同一账号下云点播视频vid 可选,默认关闭;参数值为空,表示关闭
        /// 
        [JsonProperty("warmvideoid")]
        public string Warmvideoid { get; set; }
        
        /// 
        /// 直播开始时间;格式:yyyy-MM-dd HH:mm:ss 可选,默认为空
        /// 
        [JsonProperty("livestarttime")]
        public string Livestarttime { get; set; }
        
        /// 
        /// 播放器提示语。未直播时播放器将显示该提示语 可选,最多15个字符
        /// 
        [JsonProperty("playerbackgroundhint")]
        public string Playerbackgroundhint { get; set; }
        
        /// 
        /// 手动录制模式。0:关闭;1:开启 可选,默认关闭
        /// 
        [JsonProperty("manuallyrecordmode")]
        public string Manuallyrecordmode { get; set; }
        
        /// 
        /// 讲师文档权限。0:关闭;1:开启 可选,默认关闭;
        /// 
        [JsonProperty("clientdocpermissions")]
        public string Clientdocpermissions { get; set; }
        
        /// 
        /// 重复登录设置;0:允许后进入者登录;1:禁止后进入者登录,对讲师端和观看端生效 可选,默认0
        /// 
        [JsonProperty("repeatedloginsetting")]
        public string Repeatedloginsetting { get; set; }
        
        /// 
        /// 直播间并发人数上限 可选,默认为0,表示不做限制
        /// 
        [JsonProperty("maxaudiencenum")]
        public string Maxaudiencenum { get; set; }
        
        /// 
        /// 文档显示模式。1:适合窗口;2:适合宽度 可选,适合窗口
        /// 
        [JsonProperty("documentdisplaymode")]
        public string Documentdisplaymode { get; set; }
        
        /// 
        /// 倒计时功能。0:关闭;1:开启 可选,默认关闭
        /// 
        [JsonProperty("openlivecountdown")]
        public string Openlivecountdown { get; set; }
        
        /// 
        /// 讲师端显示在线人数。0:不显示;1:显示 可选,默认显示
        /// 
        [JsonProperty("showlectueronlinenum")]
        public string Showlectueronlinenum { get; set; }
        
        /// 
        /// 助教主持人端显示在线人数。0:不显示;1:显示 可选,默认显示
        /// 
        [JsonProperty("showassistonlinenum")]
        public string Showassistonlinenum { get; set; }
        
        /// 
        /// 跑马灯功能。0:关闭;1:开启 可选,默认为0
        /// 
        [JsonProperty("openmarquee")]
        public string Openmarquee { get; set; }
        
        /// 
        /// 直播提醒设置,格式如下:[{"time":"","desc":""},{"time":"","desc":""},{"time":"","desc":""}] time为提醒时间点(单位:分钟),类型为字符串,取值范围1-1000的整数;desc为提醒内容,类型为字符串,最多20个字符 可选,默认为空
        /// 
        [JsonProperty("alarms")]
        public string Alarms { get; set; }

 

我们将代码复制到项目里即可

 

效果如下

技术分享图片

 

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

 

哈哈哈 搞定收工

 

专心写业务逻辑就行了

 

【奇淫技巧】API接口字段table文档转代码工具

标签:tar   助教   哈哈哈   直播   document   格式   VID   manual   targe   

原文地址:https://www.cnblogs.com/jhli/p/10313977.html


评论


亲,登录后才可以留言!