api接口文档说明

API调用URL:http://api.itnb.cc+路由

如:http://api.itnb.cc/dept/alluser

调用api之前需要找信息资源部架构组申请一个系统访问ID。 需要提交系统名称及要访问的接口【路由信息下面的 相关路由】所需字段信息,例子如下:

 系统名称: OA
   路由                   字段
  /dept/alluser    UserName、UserID、UserNum、DeptCode
  /user/userid         UserName、UserID、UserNum、DeptCode

然后信息资源部架构组会给您一个系统id,如:58a40049e35a651ae8457816 业务系统在调用 api的地址时需要在 http请求头中增加一个键值对为 sid:"58a40049e35a651ae8457816"。

【注:调用系统请求的头部文件如果没有sid,api将拒绝提供数据】

.net增加请求头sid示例如下:

 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(“http://api.itnb.cc/dept/alluser”);
 req.Headers.Add("sid", "58a40049e35a651ae8457816");

建议将"58a40049e35a651ae8457816"这个值配置到web.config 中,将请求api的代码封装到一个公用的方法中。

java增加请求头sid调用示例如下:

URL url = new URL(requesturl); // 此处的request是一个URL
HttpURLConnection connection = (HttpURLConnection) url
                .openConnection();
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("sid", "58a40049e35a651ae8457816");

node增加请求头sid调用示例:

var http = require('http');
var httpHead = {
    "Content-Type":'application/x-www-form-urlencoded',
    sid:"58a40049e35a651ae8457816"
}
var _options = {
    hostname:httpObj.host,
    port:httpObj.port,
    path:httpObj.path,
    method:httpMethod,
    headers:httpObj.headers || httpHead
};
var req = http.request(_options, function (serverFeedback) {});

用户信息

返回所有用户相关的信息,用户对应字段信息如下:

 {
    EmpID:"EMPID",
    CreateDtm: '创建时间',
    EntryDtm: '入职时间',
    IsLeader: "是否为主管",
    OfficeDtm: '转正日期',
    Poto: '照片地址',
    ResignDtm: '离职日期',
    Status: "状态   试用 01  正式1  离职2",
    Tel: '电话',
    Type: "员工类别  应届生0 社招1 实习生2 外包3 回聘4",
    DeptCode : "部门编码",
    DeptID : "部门ID",
    DeptName : "部门名称",
    UserID: '用户id',
    UserName: '用户名称',
    UserNum: '用户员工号',
    LeaderName:"部门主管",
    LeaderCode:"部门主管code",
    AdLeaderName:"部门分管",
    AdLeaderCode:"部门分管code",
    SuperiorLeaderCode : "上级code",
    SuperiorLeaderName : "上级name",
    IsLeader :"0、不是 1、是",
    TaxAddress:"纳税地点",
    UserCom:
    {   CityId: "工作城市id",
        CityName: '工作城市名称',
        CSN: '合同编号',
        CSNType: "合同类别 1固定期限合同,2无固定期限,3其他",
        CSNStart: '合同开始时间',
        CSNEnd: '合同结束时间',
        BankCode: '银行账户',
        BankName: '开户行名称' },
    UserInfo:
    {
        BackUpTel: "备用电话",
        Gender: '性别',
        Age: "年龄",
        Birthday: '生日',
        Address: '通信地址',
        ZipCode: '邮编',
        Nation: '民族',
        JoinJobDtm: '参加工作时间',
        Origin: '籍贯',
        Domicile: '户口所在地',
        CardType: '证件类别',
        CardNumber: '证件号码',
        Political: '政治面貌',
        Marriage: "婚姻情况 1为结婚,0为未婚",
        PrivateEmail: '个人邮箱',
        QQ: "QQ",
        MSN: "MSN",
        Education: "学历" },
    UserPostes: [{
        DeptID:"部门id"
        ,DeptCode:"部门code"
        ,DeptName:"部门名称"
        ,PostID:"岗位id"
        ,PostCode:"岗位code"
        ,PostName:"岗位名称"
        ,PostType:"岗位类型"
        ,Status:"状态"
        ,LeaderName:"部门主管"
        ,LeaderCode:"部门主管code"
        ,AdLeaderName:"部门分管"
        ,AdLeaderCode:"部门分管code"
        ,IsMain:"是否是主岗"
    } ]
}

返回json格式如下:

{
 status: 1,
 err: "",
 data:
    {
     UserID: "jinbaodong",
     UserName: "靳宝咚",
     UserNum: "R06035",
     DeptCode: "000023008"
    } 
}

错误返回json格式如下: 如 路由 /user/sss/ad

{
 status: 0,
 err: {
        text: "Illegal request",
        remart: "非法请求"
      },
 data: null
}

相关路由:

/user/leader/:userid?   //根据用户邮箱前缀返回按部门查找的领导列表
/user/superior/:userid? //根据用户邮箱前缀返回人员设置的领导的领导 
/user/:type?/:status?/:id? //根据用户邮箱前缀返回用户的基本信息
/user/leadcnfuser/:type?/:userid?  //根据类型和邮箱前缀获取领导列表【包含企业网】
/user/leadcnfdept/:type?/:deptcode? //根据类型和部门编码获取领导列表【包含企业网】
/user/tips/:status?/:id 根据关键字搜索用户
/user/basic/:type?/:status?/:id //根据关键字得到员工基础信息
/user/wlusers/:dtm?/:num?  //获取新入职员工信息
/user/lzusers             //获取当天离职的员工信息
/user/all  //获取所有在职用户信息
/user/info/:type?/:status?/:id //获取用户基本信息
/user/com/:type?/:status?/:id  //得到用户的公司信息
/user/postes/:type?/:status?/:id    //得到用户的职位信息
/user/allleader/:type?/:status?/:id //获取用户的部门领导
/user/webuser/:type?/:status?/:id  //根据userid得到该员工呆过的所有部门信息
/user/managedept/:type?/:status?/:id //根据用户邮箱前缀获取他所负责的部门
/user/hadeware/:id/:code //获取用户的特征码信息
/user/:type?/:status?/:id? //根据用户邮箱前缀返回用户的基本信息

相关路由参数说明:

* @param id {String} 关键字:邮箱前缀
* @param type {String} 【可选】条件类型。num:员工号,name:员工名称,
    prep:员工岗位编制,emp:员工的emp编码
* @param status {String} 【可选】状态分类。enable:启用,disable:禁用

路由参数调用示例:

/user/name/enable/张三 //取用户姓名为张三的启用的账号信息
/user/zhagnsan        //取用户ID为张三的启用账号信息【系统推荐这个方法取用户信息】

获取部门信息

部门对应的返回的字段信息:

{
"DeptID": "部门ID",
"DeptName": "部门名称",
"DeptCode": "部门关键字",
" Status": "部门状态",
"Lvl": "部门级别",
"LeaderName": "部门主管",
"LeaderCode": "部门主管code",
"AdLeaderName": "部门分管",
"AdLeaderCode": "部门分管code",
"AllPostList": [
    {
        "PostID": "岗位id",
        "PostCode": "岗位code",
        "PostName": "岗位名称",
        "PostType": "岗位类型",
        "Status": "状态",
        "SonUserList": [
            {
                "UserName": "用户名称",
                "UserID": "用户id"
            }
        ]
    }
 ]
}

接口返回的信息,json格式如下:

{
 status: 1,
 err: "",
 data: [
    {
        DeptID: 1,
        DeptName: "锐捷网络",
        DeptCode: "000",
        Status: 1,
        Lvl: 1
    },
    {
        DeptID: 5,
        DeptName: "财务部",
        DeptCode: "000002",
        Status: 1,
        Lvl: 2
    }
  ]
}

错误信息是返回:

{
 status: 0,
 err: {
        text: "Illegal request",
        remart: "具体错误信息"
      },
 data: null
}

相关路由信息:

 * /dept/{type}?/{status}?/{code} //根据部门关键字得到部门所有信息
 * /dept/base/{type}?/{status}?/{code} //根据部门关键字得到部门基础信息
 * /dept/son/{type}?/{status}?/{code} //根据部门关键字得到部门子部门信息,不包含子部门所属
 * //dept/alldept/{type}?/{status}?/{code} //   根据部门关键字得到部门所有子部门信息,包含子部门所属
 * /dept/alldept/{type}? //根据部门关键字得到部门所有子部门信息,包含子部门所属和自己
* /dept/users/{type}?/{status}?/{code} //根据部门关键字得到部门下人员信息,不包含子部门所属
* /dept/alluser/{type}?/{status}?/{code} //根据部门关键字得到部门下所有人员信息,包含子部门所属
* /dept/alluser/{type}? //根据部门关键字得到部门下所有人员信息,包含子部门所属和自己
 * /dept/post/{type}?/{status}?/{code} //根据部门关键字得到部门下的岗位,不包含子部门所属
 * /dept/allpost/{type}?/{status}?/{code} //根据部门关键字得到部门下的所有岗位,包含子部门下所属
 * /dept/allpost/{type}? //根据部门关键字得到部门下的所有岗位,包含子部门下所属和自己
* /dept/allleader/{type}?/{status}?/{code} //根据部门关键字得到部门的所有领导

相关路由参数信息:

* @param code {String} 关键字:部门编码
* @param type {String} 【可选】条件类型。num:DeptID,name:DeptName
* @param status {String} 【可选】状态分类。enable:启用,disable:禁用

路由参数调用示例: /dept/alluser/enable/000 //取星网锐捷下的所有的启用用户信息 /dept/alldept/enable/000 //取星网锐捷下的多有的启用的部门信息

消息相关

接口返回的正确信息:

{
  status: 1,
  err: "",
  data: null
 }

错误信息是返回:

{
 status: 0,
 err: {
        text: "Illegal request",
        remart: "具体错误信息"
      },
 data: null
}

相关路由信息[全部是Post]:

发送邮件

/message/Mail/SendMail // 使用固定账号(Message)发送邮件提醒
/message/Mail/SendMailByFromname //使用匿名账号发送邮件(可修改发件人姓名)
/message/Mail/SendMailByCustomAddress // 使用匿名账号发送邮件(可修改发件人邮箱地址及显示姓名)
/message/Mail/SendMailCC   //发送邮件(抄送密送)
/message/Mail/SendMailCCbyCustomAddress //使用匿名账号发送邮件,可选抄送密送(可修改发件人邮箱地址及显示姓名)
/message/Mail/SendMailCCbyFromname   //使用匿名账号发送邮件(可修改发件人姓名、抄送、密送)
/message/Mail/SendMailBySendCloud   //发送邮件(SendCloud),需要匹配样本方能发送成功!
/message/Mail/SendMailBySendCloudAttach  //发送邮件(SendCloud)带附件,需要匹配样本方能发送成功!

邮件参数说明:

{
    From:"发件人默认message"
    ,To:'收件人-多人请使用完整邮箱地址,且用","分隔,例panyuntao@ruijie.com.cn,shenj@ruijie.com.cn,单人 panyuntao'
    ,CC:'抄送人-多人请使用完整邮箱地址,与收件人规则一致'
    ,Bcc:"密送-多人请使用完整邮箱地址,与收件人规则一致"
    ,Subject:"主题"
    ,Body:"邮件正文,需要匹配样本才能发送,目前只有产品配置器及渠道的样本,样本变更时需要通知服务提供者"
    ,Label:"标签编号"
    ,Name:"名称"
    ,FileName:"文件名称"
    ,FilePath:"二进制流"
    ,LinkURL:"转接的url"
    ,Fromname:"收件时显示的发件人姓名,默认时"
    ,Br:"二进制流"
}

发送bqq

/message/BQQ/SendBQQ

参数信息:

    {
     To:'接收人姓名,多个接收者用";"号分开'
     ,Title:"标题"
     ,Message:"内容,如需要发隐式链接,格式如: [锐捷网络|http://www.ruijie.com.cn]"
    }

发送短信

/message/SMS/SendSMS   //发送短信提醒

参数信息:

{
    mobilephone:"目的手机号,用英文逗号分隔,最多100个"
    ,msgbody:"下行短信内容(详情计费方式咨询销售人员,各通道短信、长信计费方式不一)"
    ,invokename:"调用发送短信的系统名称"
}

发送微信企业号小助手

/message/Wechat/Send

参数信息:

 {
        To:UserID//邮箱前缀
        ,Title:""
        ,Message:"消息内容"
        ,Type:"101"
 }

/wechat/send/text //发送微信消息

{
        userid:UserID//邮箱前缀
        ,Title:""
        ,context:"消息内容"
        ,Type:"101"
 }

调用示例 node 版

 var errUserIDs="ehr数据库删除人员 "+userIDs.join(";");
   var  obj= {
       context: errUserIDs, pid: 0, userid: "sunxiaobo"
   };
    var webmsg=JSON.stringify(obj);
    var httpObj={ host: "api.itnb.cc",
        port: 80,
        path: '/wechat/send/text',
        headers : {//x-xsrf-token  X-369Cloud-App-Id
            'accept': '*/*',
            "Content-Type": 'application/json;charset=UTF-8'
            ,"Content-Length": Buffer.byteLength(webmsg, 'utf8')
            ,"sid":"58a40049e35a651ae8457816"
        }};
    httputil.Post(httpObj,webmsg,function (resStatus, body) {
        //console.log("res ,body -----",resStatus,body);
    });

消息相关

接口返回的正确信息:

{
  status: 1,
  err: "",
  data: null
 }

错误信息是返回:

{
 status: 0,
 err: {
        text: "Illegal request",
        remart: "具体错误信息"
      },
 data: null
}

相关路由信息[全部是Post]:

发送邮件

/message/Mail/SendMail // 使用固定账号(Message)发送邮件提醒
/message/Mail/SendMailByFromname //使用匿名账号发送邮件(可修改发件人姓名)
/message/Mail/SendMailByCustomAddress // 使用匿名账号发送邮件(可修改发件人邮箱地址及显示姓名)
/message/Mail/SendMailCC   //发送邮件(抄送密送)
/message/Mail/SendMailCCbyCustomAddress //使用匿名账号发送邮件,可选抄送密送(可修改发件人邮箱地址及显示姓名)
/message/Mail/SendMailCCbyFromname   //使用匿名账号发送邮件(可修改发件人姓名、抄送、密送)
/message/Mail/SendMailBySendCloud   //发送邮件(SendCloud),需要匹配样本方能发送成功!
/message/Mail/SendMailBySendCloudAttach  //发送邮件(SendCloud)带附件,需要匹配样本方能发送成功!

邮件参数说明:

{
    From:"发件人默认message"
    ,To:'收件人-多人请使用完整邮箱地址,且用","分隔,例panyuntao@ruijie.com.cn,shenj@ruijie.com.cn,单人 panyuntao'
    ,CC:'抄送人-多人请使用完整邮箱地址,与收件人规则一致'
    ,Bcc:"密送-多人请使用完整邮箱地址,与收件人规则一致"
    ,Subject:"主题"
    ,Body:"邮件正文,需要匹配样本才能发送,目前只有产品配置器及渠道的样本,样本变更时需要通知服务提供者"
    ,Label:"标签编号"
    ,Name:"名称"
    ,FileName:"文件名称"
    ,FilePath:"二进制流"
    ,LinkURL:"转接的url"
    ,Fromname:"收件时显示的发件人姓名,默认时"
    ,Br:"二进制流"
}

发送bqq

/message/BQQ/SendBQQ

参数信息:

    {
     To:'接收人姓名,多个接收者用";"号分开'
     ,Title:"标题"
     ,Message:"内容,如需要发隐式链接,格式如: [锐捷网络|http://www.ruijie.com.cn]"
    }

发送短信

/message/SMS/SendSMS   //发送短信提醒

参数信息:

{
    mobilephone:"目的手机号,用英文逗号分隔,最多100个"
    ,msgbody:"下行短信内容(详情计费方式咨询销售人员,各通道短信、长信计费方式不一)"
    ,invokename:"调用发送短信的系统名称"
}

发送微信企业号小助手

/wechat/send/text  //发送微信消息

参数信息:

 {
        To:UserID//邮箱前缀
        ,Title:""
        ,Message:"消息内容"
        ,Type:"101"
 }

调用示例 node 版

 var errUserIDs="ehr数据库删除人员 "+userIDs.join(";");
   var  obj= {
       context: errUserIDs, pid: 0, userid: "sunxiaobo"
   };
    var webmsg=JSON.stringify(obj);
    var httpObj={ host: "api.itnb.cc",
        port: 80,
        path: '/wechat/send/text',
        headers : {//x-xsrf-token  X-369Cloud-App-Id
            'accept': '*/*',
            "Content-Type": 'application/json;charset=UTF-8'
            ,"Content-Length": Buffer.byteLength(webmsg, 'utf8')
            ,"sid":"58a40049e35a651ae8457816"
        }};
    httputil.Post(httpObj,webmsg,function (resStatus, body) {
        //console.log("res ,body -----",resStatus,body);
    });

生成二维码

通用的二维码图片生成方法,返回二维码图片对应的图片流信息('Content-Type': 'image/png')。 路由:/qrcode/{message}

调用示例:

<script>
$(function () {
    var url = "http://bjapi.itnb.cc/qrcode/";
    url += encodeURIComponent("http://www.baidu.com");//encode编码
    $("#imgQrcode").attr("src", url).load(function () {
        //二维码图片获取成功后,处理其他业务
        $("#pInfo").html("loaded.....");
    });
});
</script>

<div class="row">
<p id="pInfo">loading......</p>
<div>
    <img id="imgQrcode" src="" />
</div>
</div>