Ndr2.0组件介绍

Ndr2.0组件介绍

Ndr2.0组件用来集成工程院的Ndr2.0服务,提供对实验颗粒资源、实验视频资源、教材资源等Ndr资源的检索、下载、缓存和资源缩略图下载、缓存等功能。
为了便于对应用中的用户权限进行管理,设计了权限管理服务器(基于资源标签)来进行鉴权。Ndr2.0组件支持普通模式和用户权限鉴权模式两种模式,普通模式即直接访问Ndr2.0服务API,用户权限鉴权模式则通过权限服务器来间接访问Ndr2.0服务API。

Ndr2.0介绍

公司现有的和将来的许多业务系统,比如VR人生,101PPT,等对资源都有上传、下载、权限控制、存储、管理、分类、检索、分发的需求。并需要在这个基础上实现诸如个人网盘,个人私有库,区域库等各种功能,对数据进行隔离和分享。新NDR(Ndr2.0)用于满足资源上传、下载、权限控制、存储、管理、分类、检索、分发的需求。
新NDR产品白皮书.pdf

Ndr2.0概念

租户:为满足不同业务方对资源服务的需求,保证对接应用间环境、数据的隔离,引入多租户架构,以维持不同租户间不会相互干扰,同时数据的保密性也够强。NDR提供标准、通用的租户管理服务,实现NDR租户管理功能,NDR门户提供后台管理界面,支持租户的管理。在租户下租户管理员可创建和维护多个资源容器,对应原本资源库的概念,对资源进行隔离管理。

资源容器:资源容器就是若干资源形成的集合,例:一个公司的所有资源,一所学校的资源,一个班级的资源,一个部分的资源。也可将其称为“资源库”。容器是租户隔离的,一个租户下可以有若干个容器。资源相关业务都是基于容器来实现的。

公共库:网络公司的基础资源库(租户ID为0),可以在各业务方间共享,如教材资源等。

虚拟实验室的Ndr租户和资源容器如下:

注:虚拟实验室项目使用一个租户(租户ID为310),通常每个应用建立相应的资源容器,如:虚拟实验室的101实验室产品、虚拟实验室的实操考试产品。

教材资源:对应于K12物理、化学学科各年级的教材资源,教材资源包括章节数据。

标签视图:标签树结构,由标签父节点+子节点组成,Ndr资源可以打上标签组合以便于检索。教材资源也同样可以打上标签组合。在选定标签视图时即选定了标签组合,可以用来检索资源和教材。

下图是101实验室的标签视图、章节和资源列表:

注:Ndr2.0管理后台权限申请可以咨询黄金民(171517),资源新建、修改、删除、发布流程可以咨询QA同学(庄爱真)/老师(田茜)。

Ndr2.0API

NDR网关API
已接入API:

  • 5.3.1 检索接口-检索已上线资源 [POST] /{version}/{tenant_id}/search/query?container_id={container_id}
  • 5.3.2 检索接口-检索全量资源 [POST] /{version}/{tenant_id}/search/all_status/query?container_id={container_id}
  • 5.8.5 获取租户下的容器列表 [GET]/{version}/{tenant_id}/container/list?name=xxx&ids=xxxx$offset={offset}&$limit={limit}&$count=false
  • 5.11.4.4 获取标签视图 [GET]/{version}/{tenant_id}/tag_views/{code}?global_lang={global_lang}&container_id={container_id}
  • 5.11.4.9 获取标签视图级联 [GET]/{version}/{tenant_id}/tag_cascades?tag_path=xxx&global_lang=xxx
  • 5.15.7 获取章节子节点信息[GET]/{version}/{tenant_id}/tree_nodes/{tree_node_id}/children?recursive=false&tree_id=xxx
Ndr2.0认证

Ndr2.0服务支持两种认证方式:AK/SK Token或UC Token。
其中AK/SK Token通常用于测试/联调之用,具体算法见AK/SK Token算法
UC Token通过UC登录获取的用户信息,具体算法见UC Token算法
RESTAPI规范-Auth
Mac签名常见错误原因
UC Token小工具

权限网关服务API

基于用户的权限管理服务,方便应用进行权限控制。
权限网关服务API
目前支持的API如下:

  • 资源检索 - /v1/client/ndr/resource_query
  • 获取标签视图 - /v1/client/ndr/tag_cascades
  • 获取章节子节点信息 - /v1/client/ndr/tree_nodes/children

Ndr2.0组件上下文图

更新记录

2020/06/24 v1.2.0[刘剑(281001)]