|
|
|
# 1. Portal API 概述(V2)
|
|
|
|
## 1.1. 概述
|
|
|
|
作为智慧校园的信息化入口,综合信息门户应包括对各种不同场景、不同身份、不同信息或服务的获取方式进行有效的整合。传统上由CMS、Portal、移动App portal等多种方式组合而成,但内容、服务、包括服务的移动版本等都是相互割裂的,既造成了使用体验不佳,同时对后台系统的维护、信息的一致性等难题均始终无法有效解决。融合门户提供了一体化平台,提供多种形式的数据集成,有效了集成了各种数据服务。
|
|
|
|
Portal提供遵从 REST 规范的 HTTP API,以供开发者远程调用融合门户提供的服务
|
|
|
|
|
|
|
|
## 1.2.目标
|
|
|
|
- 提供标准的数据接口,实现第三方推送数据到融合门户平台
|
|
|
|
- 通过标准的oauth2授权方式,实现对第三方平台推送数据的授权
|
|
|
|
- 通过接口管理平台实现对第三方接口的数据对接、提取、转换、加载的功能
|
|
|
|
- 通过可视化的管理界面,配置第三方对数据访问权限的授权
|
|
|
|
- 对接统一身份认证,统一体验,场景平滑切换
|
|
|
|
- 基于不同角色、部门的内容授权和展示
|
|
|
|
|
|
|
|
## 1.3.功能概括
|
|
|
|
|
|
|
|
- 智慧校园的信息展现门户。
|
|
|
|
- 个人校内服务的一体化办理门户。
|
|
|
|
- 门户CMS信息管理。
|
|
|
|
- 五个中心:消息中心、个人中心、新闻中心、日程中心、应用中心。
|
|
|
|
- 各院系子门户的可扩展对接。
|
|
|
|
- 基于角色、部门的内容授权和展示
|
|
|
|
|
|
|
|
### 1.3.1 功能详情:
|
|
|
|
- 首页
|
|
|
|
- 教师身份:集成“邮件”“流量”“财务”“一卡通”“图书信息”等
|
|
|
|
- 学生身份:集成“个人信息”“一卡通信息”“日程课表”等
|
|
|
|
- 校内信息
|
|
|
|
- 教师身份:集成“新闻头条”“部门文件”“公告通知”等信息
|
|
|
|
- 学生身份:集成“新闻头条”“团委信息”“校园活动”等信息
|
|
|
|
- 日程中心
|
|
|
|
- 教师身份:集成“新闻头条”“团委信息”“校园活动”等信息
|
|
|
|
- 学生身份:集成“课表”“个人日常”,显示当前周日程信息
|
|
|
|
- 应用中心
|
|
|
|
- 教师身份:集成办公应用“OA”“科研系统”“财务系统”等入口
|
|
|
|
- 学生身份:集成汇文图书馆系统、本科生系统等入口
|
|
|
|
- 个人中心
|
|
|
|
- 教师身份:集成“个人信息”“一卡通信息”“账户设置”“职务职级”“图书信息”等
|
|
|
|
- 学生身份:集成“个人信息”“一卡通信息”“图书信息”等
|
|
|
|
|
|
|
|
|
|
|
|
## 1.4.对接步骤
|
|
|
|
### 1.4.1 注册应用授权
|
|
|
|
1. 在平台授权申请应用授权
|
|
|
|
2. 通过access_token访问相应授权数据
|
|
|
|
## 1.4.2 访问数据授权
|
|
|
|
1. 通过融合门户数据平台后台建立相关角色
|
|
|
|
2. 分配角色给第三方用户
|
|
|
|
3. 通过角色授权需要访问的内容
|
|
|
|
|
|
|
|
## 1.5.接口主要分为12大类:
|
|
|
|
|
|
|
|
|
|
|
|
API类型 | 描述 | 状态
|
|
|
|
---|---|---
|
|
|
|
[Resource API](https://git.qtgl.com.cn/open/portal/-/wikis/011.Resource-API-v2) |各种新闻等其他资源信息新增、删除、查询 | 正常
|
|
|
|
[App API](https://git.qtgl.com.cn/open/portal/-/wikis/02.App-API-v2) | 各类应用信息新增、删除、查询 | 正常
|
|
|
|
[Event API](https://git.qtgl.com.cn/open/portal/-/wikis/03.Event-API-v2) | 会议日程、个人日程等日程类型信息的新增、删除、查询 | 正常
|
|
|
|
[Message Subscription](https://git.qtgl.com.cn/open/portal/-/wikis/04.Message-Subscription-API-v2) | 用户订阅各类栏目信息新增、删除、查询 | 正常
|
|
|
|
[PageLayout API](https://git.qtgl.com.cn/open/portal/-/wikis/05.PageLayout-API-v2) | 提供根据用户权限显示页面结构数据的查询 | 正常
|
|
|
|
[3rd API](https://git.qtgl.com.cn/open/portal/-/wikis/06.3rd-API-v2) | 管理第三方接口ETL(提取、转换、加载)处理相关数据的查询 | 正常
|
|
|
|
[User API](https://git.qtgl.com.cn/open/portal/-/wikis/07.User-API-v2) | 用户基本信息的查询 | 正常
|
|
|
|
[Taxonomy API](https://git.qtgl.com.cn/open/portal/-/wikis/08.Taxonomy-API-v2) | 系统所有分类信息新增、删除、查询 | 正常
|
|
|
|
[Personal Data API](https://git.qtgl.com.cn/open/portal/-/wikis/09.Personal-Data-API-v2) | 个人数据中心包括不限于基本信息、资产、财务、一卡通、图书借阅、科研信息等 | 正常
|
|
|
|
[File API](https://git.qtgl.com.cn/open/portal/-/wikis/091.File-API-v2) | 管理文件新增、删除、查询 | 正常
|
|
|
|
[Flag API](https://git.qtgl.com.cn/open/portal/-/wikis/092.Flag-API-v2) | 默认收藏、用户收藏、点赞等类型的接口 | 正常
|
|
|
|
[Message Notify API](https://git.qtgl.com.cn/open/portal/-/wikis/093.Message-Notify-API) | 消息通知,提供各种渠道的消息推送接口 | 进行中
|
|
|
|
## 1.6.请求方式
|
|
|
|
- 支持 HTTPS
|
|
|
|
- 支持 POST
|
|
|
|
## 1.7.鉴权方式
|
|
|
|
- 采用基础鉴权的方式,HTTP Header(头)里加一个字段( Key/Value 对):
|
|
|
|
1. 前后端完全分离方式
|
|
|
|
```
|
|
|
|
Authorization: Bearer access_token
|
|
|
|
```
|
|
|
|
- 其中 access_token 是通过[认证中心](https://git.qtgl.com/)授权获取到的access_token
|
|
|
|
- 获取认证,请到认证中心申请应用认证。
|
|
|
|
2. 基于cookie方式
|
|
|
|
```
|
|
|
|
X-Csrf-Token:2pxAx1eWYF6ARAhLB49FTwsSYjzihBwwgbaC8ZGEuHU
|
|
|
|
```
|
|
|
|
- 通过 http://{site}/session/token 获取 X-Csrf-Token 的值
|
|
|
|
## 1.8.协议描述
|
|
|
|
请求URL:https://{site_uri}/portal/api/v2/{entity_type}/{bundle}
|
|
|
|
|
|
|
|
## 1.9.相关术语
|
|
|
|
|
|
|
|
|
|
|
|
术语 | 描述 | 实例
|
|
|
|
---|---|---
|
|
|
|
Entity types | 实体类型是一个基础类别 | user,file,commment,resourcem,app,event,taxonomy,subscription
|
|
|
|
Bundles | A bundle 扩展类| news,note,profile event
|
|
|
|
Fields | 一个类别的成员、属性、元素、或者字段实例 | title,field_image,create,status
|
|
|
|
Entity | 具体的一个实例 class| entity/{id}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|