#概述

#数据资源说明

  • 数据资源是指校内各类信息系统在建设、使用过程中产生和累积的各类数据。由数据产生部门保障数据的完整性、准确性、时效性和可用性;由数据产生部门或其管理部门确定数据的密级及共享方式。
  • 使用部门对从数据资源中获取的数据,只能按照申请时的使用用途用于本部门履行职责需要,不得直接或以改变数据形式等方式提供给第三方。

#数据资源申请

申请API接口,请通过数据资源申请流程 (opens new window)完成申请。

#数据资源API表述

  • 数据资源API基于GraphQL协议 (opens new window),根据用户请求的GraphQL查询语句,服务端对GraphQL语法校验,权限鉴定,最后执行查询返回用户。
  • 所有数据API接口使用统一的请求地址(GEThttps://graphql.sjtu.edu.cn/graphql),根据请求体中GraphQL查询语句不同,判断用户查询哪一个数据API。
  • GraphQL语法说明已详细阐述了在数据API使用过程中会用到的相应配置。

#令牌获取

数据API采用欧宝app官方网站下载的OAuth认证服务完成API权限校验,获取令牌授权使用客户端凭据授予(Client Credentials Grant),授权scope为exchange_data

#构造请求

#请求地址

#注意事项

所有数据资源API请求地址都为同一个,后续不再赘述

#请求参数

除了access_token无其他参数

#请求头

Content-Type: application/json;charset=UTF-8

#请求体

请求体中为对应API接口的GraphQL语句;key为query,value即为对应GraphQL语句

示例 请求体

{"query":"{ IDENTITY_AUTH_ACCOUNT(filter : {ACCOUNT_NO:{eq:\"zhangsan\"}}){ GUID ACCOUNT_NO ORGANIZE_ID } }"}
1
2
3

#返回数据

#状态码

HTTP响应状态代码指示特定HTTP请求是否已成功完成。状态代码由section 10 of RFC 2616 (opens new window)定义。在API响应中常见的状态码见下表。

状态码 描述
200 OK 请求成功
400 Bad Request 请求错误(通常是参数错误)
403 Forbidden 拒绝请求(通常是鉴权失败)
404 Not Found 请求资源未找到(通常是url地址错误)
405 Method Not Allowed 请求的方法不被允许(通常是请求方法错误)
503 Service Unavailable 服务不可用(通常是API服务器因维护正在重启中或者停机中)

#数据格式

返回数据统一json格式,key为API接口名称,value为数据列表

{"IDENTITY_AUTH_ACCOUNT":[{"GUID":"xxxx-xxx-xxxx-xxxx-xxxx","ACCOUNT_NO":"zhangsan","ORGANIZE_ID":"01000",}]}
1
2
3
4
5
6
7
8
9

#通用结构

API的返回值的通用结构包含:

参数名 类型 描述
errcode int 错误代码,返回0表示调用成功.
data object 成功返回数据
errors object[] 可选,返回错误信息
total int 本次api接口返回的数据总数,通过分页查询时,可通过该参数来判断是否继续查询
示例 请求成功返回数据
HTTP/1.1200OKContent-Type:application/json;charset=UTF-8{ "errcode": 0, "data": { "IDENTITY_AUTH_ACCOUNT": [ { "GUID": "xxxx-xxx-xxxx-xxxx-xxxx", "ACCOUNT_NO": "zhangsan", "SCBJ": "N" } ] }, "errors": null, "total": 1 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
示例 请求错误返回数据,当用户鉴权失败时,http响应状态码返回403
HTTP/1.1403OKContent-Type:application/json;charset=UTF-8{ "errcode": 1002, "data": null, "errors": [ { "message": "The interface has no access permission." } ], "total": 0 }
1
2
3
4
5
6
7
8
9
10
11
12
13

#错误代码

API错误代码表

错误代码 错误名称 错误说明
0 成功
-1 API接口异常 未捕捉异常,可能数据库连接等因素导致
1000 请求API接口超时 规定时间接口未响应,将返回如下错误
1001 GRAPHQL解析错误 GraphQL语法错误
1002 权限验证失败 The interface has no access permission.
1003 系统内部异常 根据不同异常捕捉,返回相应错误信息
1004 API接口访问限制 针对部分设置API每日访问次数限制的,当超过访问次数,将返回如下错误
Baidu
map