Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
app-manage-console
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
ReactNative
app-manage-console
Commits
39b83f5a
提交
39b83f5a
authored
6月 01, 2018
作者:
vipcxj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增文档:文件上传和错误码列表
上级
9bbe5d9f
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
82 行增加
和
0 行删除
+82
-0
error.md
src/routes/main/modules/api-doc/error.md
+20
-0
file.md
src/routes/main/modules/api-doc/file.md
+56
-0
main.js
src/routes/main/modules/api-doc/main.js
+6
-0
没有找到文件。
src/routes/main/modules/api-doc/error.md
0 → 100644
浏览文件 @
39b83f5a
# 错误码
名称 | 值 | 说明
--------------------- | ----------- | ------
SUCCESS | 0x00000000L | 成功
EXCEPTION | 0x00010000L | 服务器内部异常,错误信息即异常的堆栈信息
NO_SUCH_USER | 0x00010001L | 用户不存在
WRONG_PASSWORD | 0x00010002L | 密码错误
INVALID_TOKEN | 0x00010003L | 无效的令牌,可能令牌已过期,或者令牌格式不对导致解析失败
NOT_AUTHED_YET | 0x00010012L | 令牌未经验证
STATE_VALIDATE_FAILED | 0x00010013L | 状态验证失败,调用动态接口时,若不满足必须的状态条件,则返回此错误码
PARAM_VALIDATE_FAILED | 0x00010014L | 参数验证失败,调用动态接口时,若不满足必须的参数条件,则返回此错误码
NO_OPERATION_RIGHT | 0x00010100L | 没有对应管理权限
NO_MODULE_RIGHT | 0x00010101L | 没有对应模块权限
NO_INTERFACE_RIGHT | 0x00010102L | 没有对应动态接口权限
NO_RESOURCE_RIGHT | 0x00010104L | 没有对应文件操作权限
NO_DOMAIN_RIGHT | 0x00010105L | 没有对应作用域权限
NO_DATASOURCE_RIGHT | 0x00010106L | 没有对应数据源权限
GENERAL_ERROR | 0x00011111L | 其他错误,没有特定意义。
CUSTOM_ERROR | 0x1XXXXXXXL | 自定义错误,X可以是任何值,动态接口中临时定义的错误,所以同样的错误码在不同动态接口中可能表示不同含义。
src/routes/main/modules/api-doc/file.md
0 → 100644
浏览文件 @
39b83f5a
# 文件传输
本系统提供对小文件的存取功能。文件上传和文件的元信息的修改是分开进行的。
文件成功上传后会生成一个唯一的内部路径,用以唯一标识这个文件。
## 首次上传
### url
-
**URL**
:
/resource/{token}
-
*token*
加密后的令牌
-
**Method**
:
POST
-
**Content-Type**
:
application/json
-
*uriList*
-
**[ string ]**
当上传成功时,返回所上传文件的系统内部路径,
因为支持一次上传多个文件,所以返回的内部路径是个数组
-
**or**
*error object*
-
**object**
当上传失败时,则返回这个错误对象。
-
*errorCode*
-
**long**
错误码
-
*message*
-
**string**
错误信息
-
*data*
-
**any**
错误相关数据
上传接口使用最普遍的multipart/form-data Post文件上传方式。
不同于其他接口,http包体的类型不再是application/json,而是multipart/form-data。
另一方面,加密的token也不再是放在包体中,而是直接拼接在url的路径中。
文件名若带后缀,系统支持自动根据后缀获取文件的媒体类型。
## 更新上传
### url
-
**URL**
:
/resource/{token}/{uri}
-
*token*
加密后的令牌
-
*uri*
urlEncode过的系统内部路径
-
**Method**
:
POST
-
**Content-Type**
:
application/json
-
*uriList*
-
**[ string ]**
当上传成功时,返回所上传文件的系统内部路径,
因为支持一次上传多个文件,所以返回的内部路径是个数组
-
**or**
*error object*
-
**object**
当上传失败时,则返回这个错误对象。
-
*errorCode*
-
**long**
错误码
-
*message*
-
**string**
错误信息
-
*data*
-
**any**
错误相关数据
替换之前上传的文件。基本和首次上传相同,但因为需要替换的文件的内部uri是拼接在url上的。
所以一次只能替换一个文件,不再像首次上传那样,支持多个文件。只有管理员和文件的拥有者有权更新文件。
首次上传文件的用户默认为文件的拥有者。
src/routes/main/modules/api-doc/main.js
浏览文件 @
39b83f5a
...
@@ -12,7 +12,9 @@ import styles from './index.less';
...
@@ -12,7 +12,9 @@ import styles from './index.less';
import
mdIndex
from
'./index.md'
;
import
mdIndex
from
'./index.md'
;
import
mdAuth
from
'./auth.md'
;
import
mdAuth
from
'./auth.md'
;
import
mdDomain
from
'./domain.md'
;
import
mdDomain
from
'./domain.md'
;
import
mdFile
from
'./file.md'
;
import
mdDyInt
from
'./dynamic-interface/index.md'
;
import
mdDyInt
from
'./dynamic-interface/index.md'
;
import
mdError
from
'./error.md'
;
import
createPages
from
'./dynamic-interface'
;
import
createPages
from
'./dynamic-interface'
;
import
md
from
'./markdown'
;
import
md
from
'./markdown'
;
...
@@ -34,6 +36,7 @@ class DocMainPage extends React.PureComponent {
...
@@ -34,6 +36,7 @@ class DocMainPage extends React.PureComponent {
<
TreeNode
title
=
"前置说明"
key
=
"index"
/>
<
TreeNode
title
=
"前置说明"
key
=
"index"
/>
<
TreeNode
title
=
"登录与认证"
key
=
"auth"
/>
<
TreeNode
title
=
"登录与认证"
key
=
"auth"
/>
<
TreeNode
title
=
"作用域"
key
=
"domain"
/>
<
TreeNode
title
=
"作用域"
key
=
"domain"
/>
<
TreeNode
title
=
"文件管理"
key
=
"file"
/>
<
TreeNode
title
=
"动态接口"
key
=
"interface"
>
<
TreeNode
title
=
"动态接口"
key
=
"interface"
>
{
{
pages
.
map
(
page
=>
(
pages
.
map
(
page
=>
(
...
@@ -41,6 +44,7 @@ class DocMainPage extends React.PureComponent {
...
@@ -41,6 +44,7 @@ class DocMainPage extends React.PureComponent {
))
))
}
}
<
/TreeNode
>
<
/TreeNode
>
<
TreeNode
title
=
"错误码"
key
=
"error"
/>
<
/Tree
>
<
/Tree
>
<
/div
>
<
/div
>
<
div
className
=
{
styles
.
contents
}
>
<
div
className
=
{
styles
.
contents
}
>
...
@@ -48,12 +52,14 @@ class DocMainPage extends React.PureComponent {
...
@@ -48,12 +52,14 @@ class DocMainPage extends React.PureComponent {
<
Route
path
=
{
`
${
match
.
path
}
/index`
}
component
=
{
md
(
mdIndex
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/index`
}
component
=
{
md
(
mdIndex
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/auth`
}
component
=
{
md
(
mdAuth
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/auth`
}
component
=
{
md
(
mdAuth
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/domain`
}
component
=
{
md
(
mdDomain
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/domain`
}
component
=
{
md
(
mdDomain
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/file`
}
component
=
{
md
(
mdFile
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/interface`
}
exact
component
=
{
md
(
mdDyInt
)}
/
>
<
Route
path
=
{
`
${
match
.
path
}
/interface`
}
exact
component
=
{
md
(
mdDyInt
)}
/
>
{
{
pages
.
map
(
page
=>
(
pages
.
map
(
page
=>
(
<
Route
key
=
{
page
.
name
}
path
=
{
page
.
path
}
render
=
{
page
.
render
}
/
>
<
Route
key
=
{
page
.
name
}
path
=
{
page
.
path
}
render
=
{
page
.
render
}
/
>
))
))
}
}
<
Route
path
=
{
`
${
match
.
path
}
/error`
}
component
=
{
md
(
mdError
)}
/
>
<
/Switch
>
<
/Switch
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论