• 公开URL: http://api.xiyoumobile.com/xiyoulibv2/
请根据下面的介绍获取数据或自行搭建服务器!
使用Node.js Express框架开发的西邮图书馆REST API,通过模拟网站登陆的形式抓取西邮图书馆Web页面并返回JSON或JSONP给访问者,目前仅支持获取用户借阅历史。
默认监听18000端口,部署前请使用 npm install 命令补全依赖包!
百度云挂上去没有作用,所以就没按照百度云上的要求来做。
• JSON请求URL形式为: http://{hostname}:{port}/{api类别}/{api名}?{参数(可选)}
• JSONP请求URL形式为: http://{hostname}:{port}/{api类别}/{api名}?{参数(可选)}&callback={回调函数名},格式错误则会提示NOT_FOUND错误。
• 二级路径: /user
• 支持方法: GET、POST
• 注: 用户相关API除login接口外,其他接口的访问需要附带login接口回传的session,否则返回错误信息。
• 完整路径: http://{hostname}:{port}/user/login
• 必选参数: username(用户名),password(密码)
• 示例代码(C#):
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://127.0.0.1/user/login");
using (Stream stream = req.GetRequestStream())
{
string paramstr = "username=S04111021&password=123";
byte[] bin = Encoding.UTF8.GetBytes(paramstr);
stream.write(bin, 0, bin.Length);
}
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
string ResStr = "";
using (Stream stream = res.GetResponseStream())
{
StreamReader reader = new StreamReader(stream);
ResStr = reader.ReadToEnd();
}
• 返回格式为JSON,形式如下:
{
"Result":true,
"Detail":"JSESSIONID=9795BE0A70AFD7F99435CD129CFD5FDB; Path=/opac_two"
}
登陆成功则Result为true,Detail为登陆成功后的Session,再次请求时可能会用到,请注意保持,登陆失败Result则为false,Detail为失败信息。
• 完整路径: http://{hostname}:{port}/user/info
• 支持方法: GET、POST
• 必选参数: session(登陆成功后回传的Session)
• 返回格式为JSON,形式如下:
{
"Result":true, //标识请求是否成功
"Detail":
{
"ID":"xxxxxxxxx", //学号
"Name":"xxxxxx", //姓名
"From":"2011-09-02", //有效期开始日期
"To":"2015-07-01", //有效期结束日期
"ReaderType":"本科生", //用户类别
"Department":"计科1101", //行政单位
"Debt":0 //欠费金额
}
}
• 完整路径: http://{hostname}:{port}/user/history
• 支持方法: GET、POST
• 必选参数: session(登陆成功后回传的Session)
• 返回格式为JSON,形式如下:
{
"Result":true, //标识请求是否成功
"Detail":
[
{
"Title":"深入浅出Ext JS", //书名
"Barcode":"03455293", //内部条形码
"Type":"续借", //操作类型,分为:借书、续借、还书
"Date":"2014-06-23" //操作日期
},
...
]
}
• 完整路径: http://{hostname}:{port}/user/rent
• 支持方法: GET、POST
• 必选参数: session(登陆成功后回传的Session)
• 返回格式为JSON,形式如下:
{
"Result":true, //标识请求是否成功
"Detail":
[
{
"Title":"编译原理解题与分析", //书名
"Barcode":"01386243", //图书馆内部条形码
"Department":"通信计算机库(长安校区)", //所在分馆
"State":"本馆续借", //当前状态
"Date":"2014-07-22", //应还日期
"CanRenew":false //是否可续借
"Department_id":"05" //书库ID号,用于续借
"Library_id":"A" //分馆ID号,用于续借
},
...
]
}
• 完整路径: http://{hostname}:{port}/user/renew
• 支持方法: GET、POST
• 必选参数:
session(登陆成功后回传的Session) barcode(查询续借的图书时所获取的图书馆内部条形码) department_id(查询续借的图书时所获取的书库ID号) library_id(查询续借的图书时所获取的分馆ID号)
• 返回格式为JSON,形式如下:
{
"Result":true, //标识请求是否成功
"Detail":
{
"2014-08-20" //新的还书日期
}
}
• 二级路径: /news
• 注: 新闻公告接口全部可使用GET或POST方法,且不限制参数形式。
• 完整路径: http://{hostname}:{port}/news/getAnnounceList/{page} 或 http://{hostname}:{port}/news/getAnnounceList/?page=1
• 可选参数: page(所查询的公告页数,不填或超出范围自动跳至第一页)
• 返回格式为JSON,形式如下:
{
"Result":true, //标识请求是否成功
"Detail":
{
"Type":"公告", //当前请求的文章列表类别
"CurrentPage":1, //当前请求的页数
"Pages":7, //总共的页数
"Amount":130, //总数
"Data": //公告详情
[
{
"ID":163, //文章ID,用于获取文章详情
"Title":"关于暑假期间我校图书馆电子资源访问方式的通知", //标题
"Date":"2014-07-07" //发布日期
},...
]
}
}
• 完整路径: http://{hostname}:{port}/news/getNewsList/{page} 或 http://{hostname}:{port}/news/getNewsList/?page=1
• 可选参数: page(所查询的新闻页数,不填或超出范围自动跳至第一页)
• 返回格式为JSON,形式如下:
{
"Result":true, //标识请求是否成功
"Detail":
{
"Type":"新闻", //当前请求的文章列表类别
"CurrentPage":1, //当前请求的页数
"Pages":6, //总共的页数
"Amount":101, //总数
"Data": //公告详情
[
{
"ID":102, //文章ID,用于获取文章详情
"Title":"图书馆召开2014年度电子文献资源议标(询价)会", //标题
"Date":"2014-06-25" //发布日期
},...
]
}
}
失败则在返回内容中,Result字段值为false,Detail字段为错误信息。
更多API正在开发中!
如有疑问可发邮件至:[email protected]