1. 创建关系类
创建关系类。
请求方式:POST
请求地址:/bosfoundationservice/{appKey}/datamodel/insert/edge
1.1. 请求参数:
Headers:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
Authorization | string | c4570cb9ca324bc8ba7dd9d1967710ea | 是 | access_token |
PathParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
SearchParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
Body:
application/json:
{
"classDefinition": {
"classDescription": "新建关系类测试", #描述信息
"relType": "测试-文档", #必填项,关系类说明,一般是“左对象类名-右对象类名”,不可重复
"className": "uirTestDocument", #必填项,类名,不可重复,对应数据的bosclass
"parentKey": "relationship", #relationship表示基类,其他为父类className,不传默认relationship
"collection": "uirTestDocument", #保存实例数据的表名
"leftObjectClass": "uoTest", #必填项,左对象className
"rightObjectClass": "documents", #必填项,右对象className
"baseclass": "relationship",#基础类型,relationship-关系类
"ratio": "N:N" #数据关系模式,默认N:N
}
}
1.2. 参数说明:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
NULL | NULL | NULL | NULL | NULL |
1.3. 正确返回:
(Http Status Code:200)
{
"message": "请求处理成功",
"code": "SUCCESS",
"data": {
"success": true,
"attributeGroup": [],
"_rev": "_cVzUlhG---",
"_id": "class_object/uirTestDocument",
"_key": "uirTestDocument",
"classDefinition": {
"baseclass": "relationship",
"type": "edge",
"userDefined": true,
"ratio": "N:N",
"className": "uirTestDocument",
"rightObjectClass": "documents",
"leftObjectClass": "uoTest",
"collection": "uirTestDocument",
"parentKey": "relationship",
"classDescription": "新建关系类测试"
}
}
}
1.4. 错误返回:
状态码 | code | message | data | 原因 |
---|---|---|---|---|
200 | USER_ADMINPERMISSION_REQUIRED | 当前用户非用户管理员 | NULL | 操作用户不是应用管理员 |
200 | OBJECT_REQUIREDFIELD_EMPTY | {XXX}属性必填 | NULL | ClassDefinition必填字段className/relType/leftObjectClass/rightObjectClass缺失 |
200 | CLASSNAME_EXIST | className({ClassName})已存在 | NULL | ClassName已存在 |
200 | RELTYPE_EXIST | relType({relType})已存在 | NULL | relType已存在 |
200 | COLLECTION_EXIST | Collection({collection})已存在 | NULL | 创建基类的collection已存在 |
200 | CREATE_COLLECTION_FAILED | 创建collection{collection}失败 | NULL | 创建Collection失败 |
200 | OBJECT_FIELD_DATA_WRONG | baseclass属性数据错误 | NULL | baseclass值错误 |
200 | PARENT_TYPE_ERROR | 父类{parentKey}类型错误 | NULL | parentKey父对象类不是关系类 |
200 | ENTITY_BOSCLASS_NOTFOUND | 实体类{bosclass}不存在 | NULL | leftObjectClass或rightObjectClass不是object但是不存在 |
200 | RELATION_LEFT_CLASS_TYPE_ERROR | 左对象类型错误,不是实体类 | NULL | leftObjectClass不是实体类 |
200 | RELATION_RIGHT_CLASS_TYPE_ERROR | 右对象类型错误,不是实体类 | NULL | rightObjectClass不是实体类 |
200 | RELATIONSHIP_BOSCLASS_NOTFOUND | 关系类{parentKey}不存在 | NULL | parentKey类不存在 |
200 | RELATION_LEFT_CLASS_TYPE_ERROR | 左对象类型错误,不是{xxx}子孙类 | NULL | 创建关系子类,左对象类不是父类的左对象类或其子孙类 |
200 | RELATION_RIGHT_CLASS_TYPE_ERROR | 右对象类型错误,不是{xxx}子孙类 | NULL | 创建关系子类,右对象类不是父类的右对象类或其子孙类 |
1.5. 注意事项:
- 只有应用管理员可以创建关系类。
- 用户自定义关系类以uir开头。
- 创建关系类基类默认有bosclass和code两个属性。
- 创建子关系类的左右对象类分别是父关系类的左右对象类或其子类,当父类的左/右对象类是Object时,子类对应的左/右对象可以是任意实体类。
- 创建子关系类继承父关系类的所有属性和属性组。
- 创建基类如果没有传collection,collection与className相同。
- 创建子类collection与父类相同。
- 创建子类时,子类的左/右对象类必须是父关系类的左/右对象或其子孙类。
- 创建子类时,当父类的左/右对象类为object时,子类的左/右对象类可以是任意实体类。