|  |  |  | # 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} | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  |