一、服务端开发文档介绍
欢迎您,TiUP开发者,我们很期待你成为TiUP开放平台的开发者。
服务端开发是TiUP为连接校园数据中心的入口,用于信任客户与学校之间的数据共享和同步。
此文档很适合于:
- 企业的IT部,了解TiUP如何连接你所在企业的办公;
- 服务提供商(ISV),了解TiUP如果链接校园与众多服务平台。
1.1 功能简介
通过协议接口,学校用户可以实现与学校数据共享和同步。
1.2 安全机制
- 所有接口的调用应在服务器端进行。
- 管理员有权随时开启和关闭制定接口的调用权限 。
- 所有接口调用均有批次限制。
二、接入流程
接入TiUP开放接口的全流程图如下:
2.1 申请管理端
管理端申请功能只限学校内部使用,开发者可联系客服人员获取管理端,如果是开发者是学校内部人员,也可以在 http://<tiup_host>.cug.edu.cn/open/Apps/register
页面自行申请,申请时,需提供:
接口用途 确定该管理端系统所需的用户数据和用途,例如:获取uid, 姓名,性别,邮箱,学工号,部门等。
调用服务器IP列表
确定该管理端在那些机器上被使用,在开发阶段,允许IP列表为空。
申请成功后,用户将获得:
- Client Id 管理端唯一识别码。
- Client Secret 管理端密码,为了您的用户安全,你可以随时重置此密码。
备注:根据系统版本的不同,在某些版本中,Client Id 叫做 ApiKey, Client Secret 叫做SecretKey,此文档将以Client Id和Client Secret为准。
2.2 验证授权
所有接口在服务器之间调用,接口验证我们采取在接口请求头部加验证的方式进行。
请求header:
键 类型 值 Authorization text Tauth
+ 空格 +client_id
+:
+时间戳
+:
+ (client_sercret
+时间戳
)合并字符串的MD5编码。时间戳和服务器时间差最多允许为1个小时,时间戳为1970到现在的毫秒数,一般为13位的long值。
代码示例
var timeStamp = System.currentTimeMillis();
request.setHeader("Authorization", "Tauth " + clientId + ":" + timeStamp +":" + Md5.encode(clientSercret + timeStamp));
例如,client_id 为test_client_id, client_secret为0000, 在1449564597000时间戳下的, 则需要在头部添加
Authorization: Tauth test_client_id:1449564597000:a77395f39788a9281fc2c0eeefd64ba9
2.3 调用API
API列表请参见具体API列表页面,下面是一个基本接口示例。
例如:服务器接口地址为: https://apis.cug.edu.cn/cug/v1/deps ,在服务器端调用应该为:
- 示例
curl -i -X GET \
-H "Authorization:Tauth test_client_id:1449564597000:a77395f39788a9281fc2c0eeefd64ba9" \
' https://apis.cug.edu.cn/cug/v1/deps'