diff --git a/docs/imgs/TinyPro.png b/docs/imgs/TinyPro.png deleted file mode 100644 index 6daf0408..00000000 Binary files a/docs/imgs/TinyPro.png and /dev/null differ diff --git "a/docs/\346\216\245\345\217\243\346\226\207\346\241\243.md" "b/docs/\346\216\245\345\217\243\346\226\207\346\241\243.md" deleted file mode 100644 index 37cb861b..00000000 --- "a/docs/\346\216\245\345\217\243\346\226\207\346\241\243.md" +++ /dev/null @@ -1,3427 +0,0 @@ ---- -title: ospp-latest v1.0.0 -language_tabs: - - shell: Shell - - http: HTTP - - javascript: JavaScript - - ruby: Ruby - - python: Python - - php: PHP - - java: Java - - go: Go -toc_footers: [] -includes: [] -search: true -code_clipboard: true -highlight_theme: darkula -headingLevel: 2 -generator: "@tarslib/widdershins v4.0.17" - ---- - -# ospp-latest - -> v1.0.0 - -Base URLs: - -# Auth - -## POST 登录接口 - -POST /auth/login - -> Body 请求参数 - -```json -{ - "email": "j.nschfnp@qq.com", - "password": "ut sed veniam" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|说明| -|---|---|---|---|---| -|body|body|object| 否 |none| -|» email|body|string| 是 |none| -|» password|body|string| 否 |none| - -> 返回示例 - -> 201 Response - -```json -{ - "token": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|201|[Created](https://tools.ietf.org/html/rfc7231#section-6.3.2)|成功|Inline| - -### 返回数据结构 - -状态码 **201** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» token|string|true|none|经过加盐处理的AccessToken|none| - -## POST 登出 - -POST /auth/logout - -> Body 请求参数 - -```json -{ - "token": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» token|body|string| 是 | 登录时返回的token|none| - -> 返回示例 - -> 200 Response - -```json -{} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# i18 - -## POST 创建一个国际化词条 - -POST /i18 - -> Body 请求参数 - -```json -{ - "lang": 0, - "key": "string", - "content": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» lang|body|number| 是 ||语言ID| -|» key|body|string| 是 ||词条键| -|» content|body|string| 是 ||词条内容| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - null - ] - }, - "key": "string", - "content": "string" - } - ] - }, - "key": "string", - "content": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[I18](#schemai18)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取国际化字段 - -GET /i18 - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|page|query|number| 否 ||页码.| -|limit|query|number| 否 ||获取数量| -|all|query|number| 否 ||是否全部获取, 如果不未0则忽略page与limit, 返回所有的国际化字段| -|key|query|string| 否 ||国际化字段的键, 如果设定则表示按照键来模糊查找| -|content|query|string| 否 ||国际化字段的值, 如果设定则表示按照值来模糊查找| - -> 返回示例 - -> 200 Response - -```json -{ - "items": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": null, - "lang": null, - "key": null, - "content": null - } - ] - }, - "key": "string", - "content": "string" - } - ], - "meta": { - "itemCount": 0, - "totalItems": 0, - "itemsPerPage": 0, - "currentPage": 0 - }, - "links": { - "first": "string", - "previous": "string", - "next": "string", - "last": "string" - } -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» items|[[I18](#schemai18)]|true|none||none| -|»» id|number|true|none|国际化字段的自增id|none| -|»» lang|[Lang](#schemalang)|true|none|国际化字段对应的语言信息|none| -|»»» id|number|true|none|语言ID|none| -|»»» name|string|true|none|语言名|none| -|»»» i18|[[I18](#schemai18)]|true|none|对应的国际化词条|none| -|»»»» id|number|true|none|国际化字段的自增id|none| -|»»»» lang|[Lang](#schemalang)|true|none|国际化字段对应的语言信息|none| -|»»»» key|string|true|none|国际化字段的键|none| -|»»»» content|string|true|none|国际化字段的实际内容|none| -|»» key|string|true|none|国际化字段的键|none| -|»» content|string|true|none|国际化字段的实际内容|none| -|» meta|[PaginationMeta](#schemapaginationmeta)|true|none||none| -|»» itemCount|number|false|none||none| -|»» totalItems|number|false|none||none| -|»» itemsPerPage|number|false|none||none| -|»» currentPage|number|false|none||none| -|» links|[PaginationLinks](#schemapaginationlinks)|true|none||none| -|»» first|string|false|none||none| -|»» previous|string|false|none||none| -|»» next|string|false|none||none| -|»» last|string|false|none||none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取国际化表 - -GET /i18/format - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|lang|query|string| 否 ||语言名| - -> 返回示例 - -> 200 Response - -```json -{ - "[lang-name]": { - "[key]": "string" - } -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -*Record>* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» [lang-name]|object|true|none||none| -|»» [key]|string|true|none||none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 根据国际化字段ID获取某一个国际化字段 - -GET /i18/{id} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|integer| 是 ||国际化字段ID| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - null - ] - }, - "key": "string", - "content": "string" - } - ] - }, - "key": "string", - "content": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[I18](#schemai18)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 修改一个国际化字段 - -PATCH /i18/{id} - -> Body 请求参数 - -```json -{ - "lang": 0, - "key": "string", - "content": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|string| 是 ||国际化字段ID| -|body|body|object| 否 ||none| -|» lang|body|number| 否 ||语言名| -|» key|body|string| 否 ||国际化字段键| -|» content|body|string| 否 ||国际化字段值| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - null - ] - }, - "key": "string", - "content": "string" - } - ] - }, - "key": "string", - "content": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[I18](#schemai18)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## DELETE 删除一个国际化字段 - -DELETE /i18/{id} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|integer| 是 ||国际化字段ID| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - null - ] - }, - "key": "string", - "content": "string" - } - ] - }, - "key": "string", - "content": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[I18](#schemai18)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# user - -## POST 新建一个用户 - -POST /user/reg - -> Body 请求参数 - -```json -{ - "name": "string", - "email": "string", - "password": "string", - "roleIds": [ - 0 - ], - "department": "string", - "employeeType": "string", - "probationStart": "string", - "probationEnd": "string", - "probationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0 -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» name|body|string| 是 | 用户昵称|none| -|» email|body|string| 是 | 用户Email|登录使用| -|» password|body|string| 是 | 用户密码|none| -|» roleIds|body|[number]| 是 | 用户角色ID数组|none| -|» department|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» employeeType|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» probationStart|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» probationEnd|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» probationDuration|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» protocolStart|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» protocolEnd|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» address|body|string| 否 | 遗留未知字段|1.1.0以前的遗留字段| -|» status|body|number| 否 | 帐号状态|none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "email": "string", - "password": "string", - "role": [ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] - } - ], - "department": "string", - "employeeType": "string", - "probationENd": "string", - "robationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "createTime": "string", - "updateTime": "string", - "create_time": "string", - "salt": "string", - "update_time": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[User](#schemauser)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取用户信息 - -GET /user/info/{email} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|email|path|string| 是 ||用户邮箱| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "email": "string", - "password": "string", - "role": [ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] - } - ], - "department": "string", - "employeeType": "string", - "probationENd": "string", - "robationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "createTime": "string", - "updateTime": "string", - "create_time": "string", - "salt": "string", - "update_time": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[User](#schemauser)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## DELETE 删除一个用户 - -DELETE /user/{email} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|email|path|string| 是 ||用户邮箱| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "email": "string", - "password": "string", - "role": [ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] - } - ], - "department": "string", - "employeeType": "string", - "probationENd": "string", - "robationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "createTime": "string", - "updateTime": "string", - "create_time": "string", - "salt": "string", - "update_time": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[User](#schemauser)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 修改一个用户 - -PATCH /user/update - -如果修改了角色, 必须将该用户踢下线 (在redis中删除该用户的token) - -> Body 请求参数 - -```json -{ - "oldPassword": "string", - "newPassword": "string", - "email": "string", - "roleIds": [ - 0 - ], - "department": "string", - "employeeType": "string", - "probationStar": "string", - "probationEnd": "string", - "probationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "name": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» oldPassword|body|string| 否 | 旧密码|none| -|» newPassword|body|string| 否 | 新密码|none| -|» email|body|string| 是 | 邮箱|none| -|» roleIds|body|[number]| 是 | 角色ID|none| -|» department|body|string| 是 ||none| -|» employeeType|body|string| 是 ||none| -|» probationStar|body|string| 是 ||none| -|» probationEnd|body|string| 是 ||none| -|» probationDuration|body|string| 是 ||none| -|» protocolStart|body|string| 是 ||none| -|» protocolEnd|body|string| 是 ||none| -|» address|body|string| 是 ||none| -|» status|body|number| 是 | 状态|none| -|» name|body|string| 是 | 用户名|none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "email": "string", - "password": "string", - "role": [ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] - } - ], - "department": "string", - "employeeType": "string", - "probationENd": "string", - "robationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "createTime": "string", - "updateTime": "string", - "create_time": "string", - "salt": "string", - "update_time": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[User](#schemauser)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取用户列表 - -GET /user - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|name|query|string| 否 ||模糊查找的用户名| -|role|query|string| 否 ||用逗号分隔| -|email|query|string| 否 ||模糊查找的邮箱| - -> 返回示例 - -> 200 Response - -```json -{ - "items": [ - { - "id": "string", - "name": "string", - "email": "string", - "password": "string", - "role": [ - { - "id": "string", - "name": "string", - "permission": [ - {} - ], - "menus": [ - {} - ] - } - ], - "department": "string", - "employeeType": "string", - "probationENd": "string", - "robationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "createTime": "string", - "updateTime": "string", - "create_time": "string", - "salt": "string", - "update_time": "string" - } - ], - "meta": { - "itemCount": 0, - "totalItems": 0, - "itemsPerPage": 0, - "currentPage": 0 - }, - "links": { - "first": "string", - "previous": "string", - "next": "string", - "last": "string" - } -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» items|[[User](#schemauser)]|true|none||none| -|»» id|string|true|none|数据库自增id|none| -|»» name|string|true|none|用户名|none| -|»» email|string|true|none||登录邮箱| -|»» password|string|true|none|密码|none| -|»» role|[[Role](#schemarole)]|true|none|角色|none| -|»»» id|string|true|none|角色id|none| -|»»» name|string|true|none|角色名|none| -|»»» permission|[[Permission](#schemapermission)]|true|none|权限|none| -|»»»» id|number|true|none|权限ID|none| -|»»»» desc|string|true|none|权限介绍|none| -|»»»» name|string|true|none|权限键|none| -|»»» menus|[[Menu](#schemamenu)]|true|none|菜单|none| -|»»»» id|number|true|none|菜单id|none| -|»»»» name|string|true|none|菜单名|none| -|»»»» order|number|true|none|排序|none| -|»»»» parentId|number|false|none|父级id|none| -|»»»» menuType|string|true|none|保留字段|none| -|»»»» icon|string|false|none|图标名|none| -|»»»» component|string|true|none|组件名|none| -|»»»» path|string|true|none|路由路径|none| -|»»»» locale|string|true|none|国际化键|none| -|»» department|string|true|none||1.1.0以前的遗留字段| -|»» employeeType|string|true|none||1.1.0以前的遗留字段| -|»» probationENd|string|true|none||1.1.0以前的遗留字段| -|»» robationDuration|string|true|none||1.1.0以前的遗留字段| -|»» protocolStart|string|true|none||1.1.0以前的遗留字段| -|»» protocolEnd|string|true|none||1.1.0以前的遗留字段| -|»» address|string|true|none||1.1.0以前的遗留字段| -|»» status|number|true|none|帐号状态|none| -|»» createTime|string|true|none||none| -|»» updateTime|string|true|none||none| -|»» create_time|string|true|none||none| -|»» salt|string|true|none|bcrypt盐|none| -|»» update_time|string|true|none||none| -|» meta|[PaginationMeta](#schemapaginationmeta)|true|none||none| -|»» itemCount|number|false|none||none| -|»» totalItems|number|false|none||none| -|»» itemsPerPage|number|false|none||none| -|»» currentPage|number|false|none||none| -|» links|[PaginationLinks](#schemapaginationlinks)|true|none||none| -|»» first|string|false|none||none| -|»» previous|string|false|none||none| -|»» next|string|false|none||none| -|»» last|string|false|none||none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 强制修改一个用户的密码 - -PATCH /user/admin/updatePwd - -> 返回示例 - -> 200 Response - -```json -{ - "email": "string", - "newPassword": "string", - "confirmPassword": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» email|string|true|none||强制修改密码的邮箱| -|» newPassword|string|true|none||新密码| -|» confirmPassword|string|true|none||确认新密码| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 修改自身密码 - -PATCH /user/updatePwd - -> Body 请求参数 - -```json -{ - "email": "string", - "token": "string", - "newPassword": "string", - "oldPassword": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» email|body|string| 是 ||要修改用户的邮箱名| -|» token|body|string| 是 ||用户token| -|» newPassword|body|string| 是 ||新密码| -|» oldPassword|body|string| 是 ||旧密码| - -> 返回示例 - -> 200 Response - -```json -{} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# role - -## POST 新增一个角色 - -POST /role - -> Body 请求参数 - -```json -{ - "name": "string", - "permissionIds": [ - 0 - ], - "menuIds": [ - 0 - ] -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» name|body|string| 是 | 角色名|none| -|» permissionIds|body|[number]| 是 | 权限id数组|none| -|» menuIds|body|[number]| 是 | 菜单id数组|none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Role](#schemarole)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 查找所有角色 - -GET /role - -> 返回示例 - -> 200 Response - -```json -[ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] - } -] -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|*anonymous*|[[Role](#schemarole)]|false|none||none| -|» id|string|true|none|角色id|none| -|» name|string|true|none|角色名|none| -|» permission|[[Permission](#schemapermission)]|true|none|权限|none| -|»» id|number|true|none|权限ID|none| -|»» desc|string|true|none|权限介绍|none| -|»» name|string|true|none|权限键|none| -|» menus|[[Menu](#schemamenu)]|true|none|菜单|none| -|»» id|number|true|none|菜单id|none| -|»» name|string|true|none|菜单名|none| -|»» order|number|true|none|排序|none| -|»» parentId|number|false|none|父级id|none| -|»» menuType|string|true|none|保留字段|none| -|»» icon|string|false|none|图标名|none| -|»» component|string|true|none|组件名|none| -|»» path|string|true|none|路由路径|none| -|»» locale|string|true|none|国际化键|none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 修改一个角色 - -PATCH /role - -> Body 请求参数 - -```json -{ - "id": 0, - "name": "string", - "permissionIds": [ - 0 - ], - "menuIds": [ - 0 - ] -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» id|body|number| 是 | 角色id|none| -|» name|body|string| 否 | 角色名|none| -|» permissionIds|body|[number]| 否 | 角色权限id列表|none| -|» menuIds|body|[number]| 否 | 角色菜单列表|none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Role](#schemarole)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取角色列表的详细信息 - -GET /role/detail - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|page|query|integer| 否 ||页数| -|limit|query|integer| 否 ||获取数量| -|name|query|string| 否 ||角色名| - -> 返回示例 - -> 200 Response - -```json -{ - "roleInfo": { - "items": [ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": null, - "desc": null, - "name": null - } - ], - "menus": [ - { - "id": null, - "name": null, - "order": null, - "parentId": null, - "menuType": null, - "icon": null, - "component": null, - "path": null, - "locale": null - } - ] - } - ], - "meta": { - "itemCount": 0, - "totalItems": 0, - "itemsPerPage": 0, - "currentPage": 0 - }, - "links": { - "first": "string", - "previous": "string", - "next": "string", - "last": "string" - } - }, - "menuTree": [ - { - "id": 0, - "label": "string", - "children": [ - { - "id": null, - "label": "string", - "children": [ - {} - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» roleInfo|object|true|none||none| -|»» items|[[Role](#schemarole)]|true|none||none| -|»»» id|string|true|none|角色id|none| -|»»» name|string|true|none|角色名|none| -|»»» permission|[[Permission](#schemapermission)]|true|none|权限|none| -|»»»» id|number|true|none|权限ID|none| -|»»»» desc|string|true|none|权限介绍|none| -|»»»» name|string|true|none|权限键|none| -|»»» menus|[[Menu](#schemamenu)]|true|none|菜单|none| -|»»»» id|number|true|none|菜单id|none| -|»»»» name|string|true|none|菜单名|none| -|»»»» order|number|true|none|排序|none| -|»»»» parentId|number|false|none|父级id|none| -|»»»» menuType|string|true|none|保留字段|none| -|»»»» icon|string|false|none|图标名|none| -|»»»» component|string|true|none|组件名|none| -|»»»» path|string|true|none|路由路径|none| -|»»»» locale|string|true|none|国际化键|none| -|»» meta|[PaginationMeta](#schemapaginationmeta)|true|none||none| -|»»» itemCount|number|false|none||none| -|»»» totalItems|number|false|none||none| -|»»» itemsPerPage|number|false|none||none| -|»»» currentPage|number|false|none||none| -|»» links|[PaginationLinks](#schemapaginationlinks)|true|none||none| -|»»» first|string|false|none||none| -|»»» previous|string|false|none||none| -|»»» next|string|false|none||none| -|»»» last|string|false|none||none| -|» menuTree|[[ITreeNodeData](#schemaitreenodedata)]|true|none||none| -|»» id|any|true|none|id|none| - -*anyOf* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»»» *anonymous*|number|false|none||none| - -*or* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»»» *anonymous*|string|false|none||none| - -*continued* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»» label|string|true|none|展示的标签|none| -|»» children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|»»» id|any|true|none|id|none| -|»»» label|string|true|none|展示的标签|none| -|»»» children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|»»» url|string|true|none|访问路由|none| -|»»» component|string|true|none|组件|none| -|»»» customIcon|string|true|none|图标名|none| -|»»» menuType|string|true|none|保留字段|none| -|»»» parentId|string|true|none|父级id|none| -|»»» order|integer|true|none|排序|none| -|»»» locale|string|true|none|国际化键|none| -|»» url|string|true|none|访问路由|none| -|»» component|string|true|none|组件|none| -|»» customIcon|string|true|none|图标名|none| -|»» menuType|string|true|none|保留字段|none| -|»» parentId|string|true|none|父级id|none| -|»» order|integer|true|none|排序|none| -|»» locale|string|true|none|国际化键|none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## DELETE 删除一个角色 - -DELETE /role/{id} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|number| 是 ||角色id| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Role](#schemarole)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取一个角色的详细信息 - -GET /role/info/{id} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|integer| 是 ||角色id| - -> 返回示例 - -> 200 Response - -```json -{ - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Role](#schemarole)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# permission - -## POST 创建权限 - -POST /permission - -> Body 请求参数 - -```json -{ - "name": "string", - "desc": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» name|body|string| 是 | 权限键|none| -|» desc|body|string| 是 | 权限简介|none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "desc": "string", - "name": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Permission](#schemapermission)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 修改权限 - -PATCH /permission - -> Body 请求参数 - -```json -{ - "name": "string", - "desc": "string", - "id": 0 -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|[UpdatePermissionDTO](#schemaupdatepermissiondto)| 否 ||none| - -> 返回示例 - -> 200 Response - -```json -{} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取权限 - -GET /permission - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|page|query|string| 否 ||页数| -|limit|query|string| 否 ||如果为0则查找所有| -|name|query|string| 否 ||权限名,where子句格式| - -> 返回示例 - -> 200 Response - -```json -{ - "items": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "meta": { - "itemCount": 0, - "totalItems": 0, - "itemsPerPage": 0, - "currentPage": 0 - }, - "links": { - "first": "string", - "previous": "string", - "next": "string", - "last": "string" - } -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» items|[[Permission](#schemapermission)]|true|none||none| -|»» id|number|true|none|权限ID|none| -|»» desc|string|true|none|权限介绍|none| -|»» name|string|true|none|权限键|none| -|» meta|[PaginationMeta](#schemapaginationmeta)|true|none||none| -|»» itemCount|number|false|none||none| -|»» totalItems|number|false|none||none| -|»» itemsPerPage|number|false|none||none| -|»» currentPage|number|false|none||none| -|» links|[PaginationLinks](#schemapaginationlinks)|true|none||none| -|»» first|string|false|none||none| -|»» previous|string|false|none||none| -|»» next|string|false|none||none| -|»» last|string|false|none||none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## DELETE 删除权限 - -DELETE /permission/{id} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|integer| 是 ||权限id| - -> 返回示例 - -> 200 Response - -```json -[ - { - "id": 0, - "desc": "string", - "name": "string" - } -] -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» id|number|true|none|权限ID|none| -|» desc|string|true|none|权限介绍|none| -|» name|string|true|none|权限键|none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# menu - -## GET 获取用户菜单 - -GET /menu/role/{email} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|email|path|string| 是 ||用户email| - -> 返回示例 - -> 200 Response - -```json -[ - { - "id": 0, - "label": "string", - "children": [ - { - "id": 0, - "label": "string", - "children": [ - { - "id": null, - "label": "string", - "children": [ - null - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } -] -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|*anonymous*|[[ITreeNodeData](#schemaitreenodedata)]|false|none||none| -|» id|any|true|none|id|none| - -*anyOf* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»» *anonymous*|number|false|none||none| - -*or* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»» *anonymous*|string|false|none||none| - -*continued* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» label|string|true|none|展示的标签|none| -|» children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|»» id|any|true|none|id|none| -|»» label|string|true|none|展示的标签|none| -|»» children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|»» url|string|true|none|访问路由|none| -|»» component|string|true|none|组件|none| -|»» customIcon|string|true|none|图标名|none| -|»» menuType|string|true|none|保留字段|none| -|»» parentId|string|true|none|父级id|none| -|»» order|integer|true|none|排序|none| -|»» locale|string|true|none|国际化键|none| -|» url|string|true|none|访问路由|none| -|» component|string|true|none|组件|none| -|» customIcon|string|true|none|图标名|none| -|» menuType|string|true|none|保留字段|none| -|» parentId|string|true|none|父级id|none| -|» order|integer|true|none|排序|none| -|» locale|string|true|none|国际化键|none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## GET 获取菜单树 - -GET /menu - -获取所有的菜单,并根绝parentId建立一个菜单树 - -> 返回示例 - -> 200 Response - -```json -[ - { - "id": 0, - "label": "string", - "children": [ - { - "id": 0, - "label": "string", - "children": [ - { - "id": null, - "label": "string", - "children": [ - null - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } -] -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|*anonymous*|[[ITreeNodeData](#schemaitreenodedata)]|false|none||none| -|» id|any|true|none|id|none| - -*anyOf* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»» *anonymous*|number|false|none||none| - -*or* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|»» *anonymous*|string|false|none||none| - -*continued* - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» label|string|true|none|展示的标签|none| -|» children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|»» id|any|true|none|id|none| -|»» label|string|true|none|展示的标签|none| -|»» children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|»» url|string|true|none|访问路由|none| -|»» component|string|true|none|组件|none| -|»» customIcon|string|true|none|图标名|none| -|»» menuType|string|true|none|保留字段|none| -|»» parentId|string|true|none|父级id|none| -|»» order|integer|true|none|排序|none| -|»» locale|string|true|none|国际化键|none| -|» url|string|true|none|访问路由|none| -|» component|string|true|none|组件|none| -|» customIcon|string|true|none|图标名|none| -|» menuType|string|true|none|保留字段|none| -|» parentId|string|true|none|父级id|none| -|» order|integer|true|none|排序|none| -|» locale|string|true|none|国际化键|none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## POST 新增一个菜单 - -POST /menu - -> Body 请求参数 - -```json -{ - "order": 0, - "menuType": "string", - "name": "string", - "path": "string", - "component": "string", - "icon": "string", - "locale": "string", - "parentId": 0 -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|object| 否 ||none| -|» order|body|number| 是 ||none| -|» menuType|body|string| 是 ||none| -|» name|body|string| 是 ||none| -|» path|body|string| 是 ||none| -|» component|body|string| 是 ||none| -|» icon|body|string| 是 ||none| -|» locale|body|string| 是 ||none| -|» parentId|body|number¦null| 否 ||none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Menu](#schemamenu)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PATCH 修改一个菜单 - -PATCH /menu - -> Body 请求参数 - -```json -{ - "order": 0, - "menuType": "string", - "name": "string", - "path": "string", - "component": "string", - "icon": "string", - "locale": "string", - "parentId": 0, - "id": 0 -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|[UpdateMenuDTO](#schemaupdatemenudto)| 否 ||none| - -> 返回示例 - -> 200 Response - -```json -true -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|boolean| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## DELETE 删除一个菜单 - -DELETE /menu - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|query|integer| 否 ||菜单Id| -|parentId|query|integer| 否 ||父级菜单ID| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Menu](#schemamenu)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# mock - -## GET GET 的mock方法 - -GET /mock - -> 返回示例 - -> 200 Response - -```json -"string" -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|string| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## POST POST的mock方法 - -POST /mock - -> 返回示例 - -> 200 Response - -```json -"string" -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|string| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# lang - -## GET 获取所有语言 - -GET /lang - -> 返回示例 - -> 200 Response - -```json -[ - { - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - {} - ] - }, - "key": "string", - "content": "string" - } - ] - } -] -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **200** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|*anonymous*|[[Lang](#schemalang)]|false|none||none| -|» 国际化字段对应的语言信息|[Lang](#schemalang)|false|none|国际化字段对应的语言信息|none| -|»» id|number|true|none|语言ID|none| -|»» name|string|true|none|语言名|none| -|»» i18|[[I18](#schemai18)]|true|none|对应的国际化词条|none| -|»»» id|number|true|none|国际化字段的自增id|none| -|»»» lang|[Lang](#schemalang)|true|none|国际化字段对应的语言信息|none| -|»»»» id|number|true|none|语言ID|none| -|»»»» name|string|true|none|语言名|none| -|»»»» i18|[[I18](#schemai18)]|true|none|对应的国际化词条|none| -|»»» key|string|true|none|国际化字段的键|none| -|»»» content|string|true|none|国际化字段的实际内容|none| - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## POST 增加一个语言 - -POST /lang - -> Body 请求参数 - -```json -{ - "name": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|body|body|[CreateLang](#schemacreatelang)| 否 ||none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": null, - "lang": null, - "key": null, - "content": null - } - ] - }, - "key": "string", - "content": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Lang](#schemalang)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## PACH 修改一个语言 - -PACH /lang/{id} - -> Body 请求参数 - -```json -{ - "name": "string" -} -``` - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|string| 是 ||语言ID| -|body|body|[UpdateLang](#schemaupdatelang)| 否 ||none| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": null, - "lang": null, - "key": null, - "content": null - } - ] - }, - "key": "string", - "content": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Lang](#schemalang)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -## DELETE 删除一个语言 - -DELETE /lang/{id} - -### 请求参数 - -|名称|位置|类型|必选|中文名|说明| -|---|---|---|---|---|---| -|id|path|number| 是 ||语言ID| - -> 返回示例 - -> 200 Response - -```json -{ - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": null, - "lang": null, - "key": null, - "content": null - } - ] - }, - "key": "string", - "content": "string" - } - ] -} -``` - -### 返回结果 - -|状态码|状态码含义|说明|数据模型| -|---|---|---|---| -|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|[Lang](#schemalang)| -|401|[Unauthorized](https://tools.ietf.org/html/rfc7235#section-3.1)|401 未登录|Inline| -|403|[Forbidden](https://tools.ietf.org/html/rfc7231#section-6.5.3)|403 权限不足|Inline| - -### 返回数据结构 - -状态码 **401** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|true|none||none| -|» message|string|true|none||none| - -状态码 **403** - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» statusCode|number|false|none||none| -|» message|string|false|none||none| - -# 数据模型 - -

UpdateLang

- - - - - - -```json -{ - "name": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|name|string|false|none|语言名|none| - -

CreateLang

- - - - - - -```json -{ - "name": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|name|string|true|none|语言名|none| - -

UpdateMenuDTO

- - - - - - -```json -{ - "order": 0, - "menuType": "string", - "name": "string", - "path": "string", - "component": "string", - "icon": "string", - "locale": "string", - "parentId": 0, - "id": 0 -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|order|number|true|none|序号|none| -|menuType|string|true|none|菜单类型|none| -|name|string|true|none|菜单键 |唯一| -|path|string|true|none|菜单路径|none| -|component|string|true|none|组件|none| -|icon|string|true|none|图标名|none| -|locale|string|true|none|国际化字段|展示用| -|parentId|number¦null|false|none|父级id|none| -|id|number|true|none|菜单id|none| - -

CreateMenuDTO

- - - - - - -```json -{ - "order": 0, - "menuType": "string", - "name": "string", - "path": "string", - "component": "string", - "icon": "string", - "locale": "string", - "parentId": 0 -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|order|number|true|none|序号|none| -|menuType|string|true|none|菜单类型|none| -|name|string|true|none|菜单键 |唯一| -|path|string|true|none|菜单路径|none| -|component|string|true|none|组件|none| -|icon|string|true|none|图标名|none| -|locale|string|true|none|国际化字段|展示用| -|parentId|number¦null|false|none|父级id|none| - -

UpdatePermissionDTO

- - - - - - -```json -{ - "name": "string", - "desc": "string", - "id": 0 -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|name|string|false|none|权限键|none| -|desc|string|false|none|权限介绍|none| -|id|integer|true|none|权限id|none| - -

CreatePermissionDTO

- - - - - - -```json -{ - "name": "string", - "desc": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|name|string|true|none|权限键|none| -|desc|string|true|none|权限介绍|none| - -

ITreeNodeData

- - - - - - -```json -{ - "id": 0, - "label": "string", - "children": [ - { - "id": 0, - "label": "string", - "children": [ - { - "id": null, - "label": "string", - "children": [ - {} - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" - } - ], - "url": "string", - "component": "string", - "customIcon": "string", - "menuType": "string", - "parentId": "string", - "order": 0, - "locale": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|any|true|none|id|none| - -anyOf - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» *anonymous*|number|false|none||none| - -or - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|» *anonymous*|string|false|none||none| - -continued - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|label|string|true|none|展示的标签|none| -|children|[[ITreeNodeData](#schemaitreenodedata)]|false|none|子集菜单|none| -|url|string|true|none|访问路由|none| -|component|string|true|none|组件|none| -|customIcon|string|true|none|图标名|none| -|menuType|string|true|none|保留字段|none| -|parentId|string|true|none|父级id|none| -|order|integer|true|none|排序|none| -|locale|string|true|none|国际化键|none| - -

User

- - - - - - -```json -{ - "id": "string", - "name": "string", - "email": "string", - "password": "string", - "role": [ - { - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] - } - ], - "department": "string", - "employeeType": "string", - "probationENd": "string", - "robationDuration": "string", - "protocolStart": "string", - "protocolEnd": "string", - "address": "string", - "status": 0, - "createTime": "string", - "updateTime": "string", - "create_time": "string", - "salt": "string", - "update_time": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|string|true|none|数据库自增id|none| -|name|string|true|none|用户名|none| -|email|string|true|none||登录邮箱| -|password|string|true|none|密码|none| -|role|[[Role](#schemarole)]|true|none|角色|none| -|department|string|true|none||1.1.0以前的遗留字段| -|employeeType|string|true|none||1.1.0以前的遗留字段| -|probationENd|string|true|none||1.1.0以前的遗留字段| -|robationDuration|string|true|none||1.1.0以前的遗留字段| -|protocolStart|string|true|none||1.1.0以前的遗留字段| -|protocolEnd|string|true|none||1.1.0以前的遗留字段| -|address|string|true|none||1.1.0以前的遗留字段| -|status|number|true|none|帐号状态|none| -|createTime|string|true|none||none| -|updateTime|string|true|none||none| -|create_time|string|true|none||none| -|salt|string|true|none|bcrypt盐|none| -|update_time|string|true|none||none| - -

Role

- - - - - - -```json -{ - "id": "string", - "name": "string", - "permission": [ - { - "id": 0, - "desc": "string", - "name": "string" - } - ], - "menus": [ - { - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" - } - ] -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|string|true|none|角色id|none| -|name|string|true|none|角色名|none| -|permission|[[Permission](#schemapermission)]|true|none|权限|none| -|menus|[[Menu](#schemamenu)]|true|none|菜单|none| - -

Menu

- - - - - - -```json -{ - "id": 0, - "name": "string", - "order": 0, - "parentId": 0, - "menuType": "string", - "icon": "string", - "component": "string", - "path": "string", - "locale": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|number|true|none|菜单id|none| -|name|string|true|none|菜单名|none| -|order|number|true|none|排序|none| -|parentId|number|false|none|父级id|none| -|menuType|string|true|none|保留字段|none| -|icon|string|false|none|图标名|none| -|component|string|true|none|组件名|none| -|path|string|true|none|路由路径|none| -|locale|string|true|none|国际化键|none| - -

Permission

- - - - - - -```json -{ - "id": 0, - "desc": "string", - "name": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|number|true|none|权限ID|none| -|desc|string|true|none|权限介绍|none| -|name|string|true|none|权限键|none| - -

PaginationOptionsRoutingLabels

- - - - - - -```json -{ - "limitLabel": "string", - "pageLabel": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|limitLabel|string|true|none||none| -|pageLabel|string|true|none||none| - - - - - - - - -```json -{ - "first": "string", - "previous": "string", - "next": "string", - "last": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|first|string|false|none||none| -|previous|string|false|none||none| -|next|string|false|none||none| -|last|string|false|none||none| - -

PaginationMeta

- - - - - - -```json -{ - "itemCount": 0, - "totalItems": 0, - "itemsPerPage": 0, - "currentPage": 0 -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|itemCount|number|false|none||none| -|totalItems|number|false|none||none| -|itemsPerPage|number|false|none||none| -|currentPage|number|false|none||none| - -

I18

- - - - - - -```json -{ - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - null - ] - }, - "key": "string", - "content": "string" - } - ] - }, - "key": "string", - "content": "string" -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|number|true|none|国际化字段的自增id|none| -|lang|[Lang](#schemalang)|true|none|国际化字段对应的语言信息|none| -|key|string|true|none|国际化字段的键|none| -|content|string|true|none|国际化字段的实际内容|none| - -

Lang

- - - - - - -```json -{ - "id": 0, - "name": "string", - "i18": [ - { - "id": 0, - "lang": { - "id": 0, - "name": "string", - "i18": [ - { - "id": null, - "lang": null, - "key": null, - "content": null - } - ] - }, - "key": "string", - "content": "string" - } - ] -} - -``` - -### 属性 - -|名称|类型|必选|约束|中文名|说明| -|---|---|---|---|---|---| -|id|number|true|none|语言ID|none| -|name|string|true|none|语言名|none| -|i18|[[I18](#schemai18)]|true|none|对应的国际化词条|none| - diff --git "a/docs/\350\256\276\350\256\241\346\226\207\346\241\243.md" "b/docs/\350\256\276\350\256\241\346\226\207\346\241\243.md" deleted file mode 100644 index 4b8aaa5e..00000000 --- "a/docs/\350\256\276\350\256\241\346\226\207\346\241\243.md" +++ /dev/null @@ -1,93 +0,0 @@ -# TinyPro 接口文档 - -本文档旨在捋清TinyPro后端设计架构。 - -## 表设计 - -![](./imgs/TinyPro.png) - -## 专用术语 - -- 公开接口: 一个不需要Token的接口, 一般是登录接口. -- 非公开接口: 一个需要Token的接口, 当Token过期时必须返回401响应码. 错误报文格式请参考[异常格式](#异常格式) -- 保护接口: 一个需要相应权限的接口, 会从Token中读取用户Email, 如果Token过期则**必须**返回401响应码,如果用户**没有**相应的权限,**必须**返回一个403响应码,错误报文格式请参考[异常格式](#异常格式) - -## 请求示意图 - -### 公开接口请求示意图 - -```mermaid -sequenceDiagram - User->>+Server: 发送请求 - Server->>Server: 是公开接口 - Server->>Server: 处理请求 - Server-->>-User: 返回响应 -``` - -### 非公开接口请求示意图 - -#### 正常响应 - -如果用户Token合法且未过期则不会返回异常 - -```mermaid -sequenceDiagram - User->>+Server: 发送请求 - Server->>Server: 不是公开接口 - Server->>+AuthGuard: 用户Token - AuthGuard->>AuthGuard: Token合法 - AuthGuard->>AuthGuard: Token在Redis中未过期 - AuthGuard->>-Server: 放行 - Server->>Server: 处理请求 - Server-->>-User: 返回响应 -``` - -#### 异常响应 - -如果Token过期或异常则会返回异常响应 - -```mermaid -sequenceDiagram - User->>+Server: 发送请求 - Server->>Server: 不是公开接口 - Server->>+AuthGuard: 用户Token - AuthGuard->>AuthGuard: Token不合法 - AuthGuard-->> -User: 401 Token不合法 - - User->>+Server: 发送请求 - Server->>Server: 不是公开接口 - Server->>+AuthGuard: 用户Token - AuthGuard->>AuthGuard: Token合法 - AuthGuard->>AuthGuard: Token过期 - AuthGuard-->> -User: 401 登陆过期 -``` - -### 保护接口 - -#### 正常响应 - -```mermaid -sequenceDiagram - User->>+Server: 发送请求 - Server->>Server: 不是公开接口 - Server->>AuthGuard: Token - AuthGuard-->>Server: Token合法且未过期 - Server->>PermissionGuard: 是保护接口 - PermissionGuard->>PermissionGuard: 未设定权限或拥有相应权限 - PermissionGuard -->> Server: 放行 - Server ->> Server: 逻辑处理 - Server ->> -User: 响应 -``` - -#### 异常响应 - -```mermaid -sequenceDiagram - User->>+Server: 发送请求 - Server->>Server: 不是公开接口 - Server->>AuthGuard: Token - AuthGuard-->>Server: Token合法且未过期 - Server->>PermissionGuard: 是保护接口 - PermissionGuard->>PermissionGuard: 未拥有权限 - PermissionGuard-->>User: 权限不足 -```