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 注册应用授权
- 在平台授权申请应用授权
- 通过access_token访问相应授权数据
1.4.2 访问数据授权
- 通过融合门户数据平台后台建立相关角色
- 分配角色给第三方用户
- 通过角色授权需要访问的内容
1.5.接口主要分为12大类:
API类型 | 描述 | 状态 |
---|---|---|
Resource API | 各种新闻等其他资源信息新增、删除、查询 | 正常 |
App API | 各类应用信息新增、删除、查询 | 正常 |
Event API | 会议日程、个人日程等日程类型信息的新增、删除、查询 | 正常 |
Message Subscription | 用户订阅各类栏目信息新增、删除、查询 | 正常 |
PageLayout API | 提供根据用户权限显示页面结构数据的查询 | 正常 |
3rd API | 管理第三方接口ETL(提取、转换、加载)处理相关数据的查询 | 正常 |
User API | 用户基本信息的查询 | 正常 |
Taxonomy API | 系统所有分类信息新增、删除、查询 | 正常 |
Personal Data API | 个人数据中心包括不限于基本信息、资产、财务、一卡通、图书借阅、科研信息等 | 正常 |
File API | 管理文件新增、删除、查询 | 正常 |
Flag API | 默认收藏、用户收藏、点赞等类型的接口 | 正常 |
Message Notify API | 消息通知,提供各种渠道的消息推送接口 | 进行中 |
1.6.请求方式
- 支持 HTTPS
- 支持 POST
1.7.鉴权方式
- 采用基础鉴权的方式,HTTP Header(头)里加一个字段( Key/Value 对):
- 前后端完全分离方式
Authorization: Bearer access_token
- 其中 access_token 是通过认证中心授权获取到的access_token
- 获取认证,请到认证中心申请应用认证。
- 基于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} |