Wiki 概念分类(KmsWikiConceptCategoryController)¶
提供 KMS 知识管理模块「Wiki 概念分类域」(KMS_WIKI_CONCEPT_CATEGORY)的增删改查能力:分类列表(可按状态过滤)、分类详情、新建分类、更新分类、删除分类。所有端点均返回 JSON 资源。
- 接口类型:REST 资源(
@RestController,类级与所有方法级produces = MediaType.APPLICATION_JSON_VALUE) - 基址:
${myapps.context-path.kms:}/api/kms/wiki/concept/categories与${myapps.context-path.kms:}/kms/wiki/concept/categories(类级@RequestMapping同时声明两个前缀,同一端点可经任一前缀访问;下文示例统一采用/api/kms/wiki/concept/categories) - Tag:kms Wiki 概念分类模块
公共说明¶
- 鉴权(据源码
KmsMvcConfig+KmsSecurityFilter):KmsMvcConfig注册全局 Servlet 过滤器KmsSecurityFilter(URL 模式/*,context-path 为/时为/kms/*)。本控制器路径/api/kms/wiki/concept/categories/**、/kms/wiki/concept/categories/**均不在KmsSecurityFilter.isExcludeURI的豁免名单内(豁免仅覆盖/login.*、/admin、/domain.*、/tray/service、/authtime、service/OfficeServer、.*outsideshare/.*/preview、静态资源后缀、actuator/health等)。过滤器调用Security.getUserIdFromToken(request),取不到用户则返回 HTTP401。因此所有端点均需 accessToken,可通过以下任一方式传递(据Security.getUserIdFromToken):query 参数accessToken、query 参数access_token(移动端)、请求头accessToken、CookieaccessToken、请求头Authorization: Bearer <token>。完整鉴权机制见 index.md「鉴权说明」。 - 执行用户:控制器内
getUser()(继承自AbstractBaseController)调用Security.getUserIdFromToken(request)还原当前用户 id,再经 Feign(UserAPI.getUserById)装载KmsUser。无userCode参数。所有方法体内均显式调用getUser()用于鉴权(不使用其返回值)。 - 响应结构:统一
Resource(见 ../index.md「统一响应结构」),字段为errcode/errmsg/data/errors。KMS 的Resource为AbstractBaseController内部类,其构造器对data执行ESAPI.encode(data)做 XSS 编码,故data中的 HTML 特殊字符会被转义。 - HTTP 状态码与错误码(据源码
AbstractBaseController全局异常处理):成功默认 HTTP 200;InvalidRequestException→ HTTP 400 / errcode=400;UnauthorizedException→ HTTP 403 / errcode=403;ForbiddenException→ HTTP 403 / errcode=403;ResourceNotFoundException→ HTTP 404 / errcode=404(如getRequired(id)在分类不存在时抛出);其他Exception→ HTTP 500 / errcode=500。 - 路径变量:
id为分类主键(明文 id)。
1. 分类列表¶
返回全部 Wiki 概念分类列表,按 sortNum 升序排序;可选 status 过滤(1 正常、0 禁用)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/(完整:{kms-context}/api/kms/wiki/concept/categories;方法级未声明子路径,直接命中类级基址) - 鉴权:是(需 accessToken,据源码)
- Tag:kms Wiki 概念分类模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| status | query | int | 否 | 状态过滤(源码标注 required=false;1 正常、0 禁用;不传则返回全部) |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:List<KmsWikiConceptCategory>,分类列表(按 sortNum 升序)。
2. 分类详情¶
按分类 Id 获取单个 Wiki 概念分类详情。分类不存在时由 getRequired(id) 抛 ResourceNotFoundException(HTTP 404)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/{id}(完整:{kms-context}/api/kms/wiki/concept/categories/{id}) - 鉴权:是(需 accessToken,据源码)
- Tag:kms Wiki 概念分类模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| id | path | string | 是 | 分类Id |
请求示例¶
响应¶
结构:统一 Resource。
data:KmsWikiConceptCategory,分类详情。
3. 新建分类¶
新建一个 Wiki 概念分类。请求体为 KmsWikiConceptCategory 对象 JSON。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/(完整:{kms-context}/api/kms/wiki/concept/categories;方法级未声明子路径,直接命中类级基址) - 鉴权:是(需 accessToken,据源码)
- Tag:kms Wiki 概念分类模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | KmsWikiConceptCategory 对象 JSON |
请求体¶
请求示例¶
POST /api/kms/wiki/concept/categories?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json
{ "name": "技术", "sortNum": 1, "status": 1 }
响应¶
结构:统一 Resource。
data:新建后的 KmsWikiConceptCategory。
4. 更新分类¶
按分类 Id 更新 Wiki 概念分类(以请求体整体覆盖)。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/{id}(完整:{kms-context}/api/kms/wiki/concept/categories/{id}) - 鉴权:是(需 accessToken,据源码)
- Tag:kms Wiki 概念分类模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| id | path | string | 是 | 分类Id |
| body | body | object | 是 | KmsWikiConceptCategory 对象 JSON |
请求体¶
请求示例¶
PUT /api/kms/wiki/concept/categories/__ID__?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json
{ "name": "技术(更新)", "sortNum": 2, "status": 1 }
响应¶
结构:统一 Resource。
data:更新后的 KmsWikiConceptCategory。
5. 删除分类¶
按分类 Id 删除 Wiki 概念分类。若分类下仍有关联词条则拒绝删除(据 @Operation.description,由服务层校验并抛异常,经全局处理器映射为对应错误码)。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/{id}(完整:{kms-context}/api/kms/wiki/concept/categories/{id}) - 鉴权:是(需 accessToken,据源码)
- Tag:kms Wiki 概念分类模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| id | path | string | 是 | 分类Id |
请求示例¶
响应¶
结构:统一 Resource。
data:boolean,固定为 true(删除由 kmsWikiConceptCategoryService.delete(id) 完成)。