-
Notifications
You must be signed in to change notification settings - Fork 3
RESTful API
hsfzxjy edited this page Aug 15, 2017
·
12 revisions
-
*
必填 -
!
只读 -
?
部分对象
示例:'1,2'
。
ISO-8601
字符串,零时区。如:2017-07-17T07:12:29.181605Z
。
alias of String.
alias of String.
T
的数组。
{
count: Number,
next: URL | null, // 下一页 URL
previous: URL | null, // 上一页 URL
results: List<T>
}
{
id!: Number,
last_login!: DateTime | null,
username: String,
email: Email,
description: String,
avatar_url!: URL,
address: String,
site_url: URL,
description: String
}
{
id!: Number,
category!: String,
message!: String,
has_read: Boolean,
created!: DateTime
}
{
id?: Number, // 不入库文件无此字段
file: URL,
mime_type: String
}
使用 JSON 交换数据。默认当输入有错误时,返回 Status Code 400 和详细错误信息。
标 API<T> <base>
的为类型 T
的 CRUD API,操作有如下几类:
-
list
:GET <base>
->Page<T>
-
create
:POST <base>
->T
-
retrieve
:GET <base>/<id>/
->T
-
update
:PUT <base>/<id>/
->T
(输入为T
,完整更新对象) -
patch
:PATCH <base>/<id>/
->T
(输入为T?
,局部更新对象) -
delete
:DELETE <base>/<id>/
对于指定了 Filters
的 API,可以传递相应的 URL Parameters 筛选结果集。注意:
- 对获取单个对象的操作使用 filters 时,可能会导致 404。
- 筛选
Boolean
域时,传入字符串True
或False
。
上传文件。需以 multipart/form-data
的形式提交,文件的字段名为 file
。
可选 URL 参数 store_db
,若设置则表明此文件为需存入数据库的文件。
示例表单:
<!--入库-->
<form action="/files/upload/?store_db=1" method="post" enctype="multipart/form-data">
<input type="file" name="file">
</form>
<!--不入库-->
<form action="/files/upload/" method="post" enctype="multipart/form-data">
<input type="file" name="file">
</form>
- 403: 未登录
- 200 ->
File
用户注册。
{
username*: String,
email*: Email,
password*: String
}
- 404: 当前已有用户登录
- 200 ->
User
: 自动将用户登入
用户登录。
{
username*: String,
password*: String
}
- 404: 当前已有用户登录
- 200 ->
User
用户登出。
- 403: 未登录
- 200 ->
String = 'OK'
multipart/form-data
file
域为文件。
- 403:未登录
- 400:
file
域缺失 - 200 ->
String
:头像的 URL
{
old*: String,
new1*: String,
new2*: String
}
- 403: 未登录
- 200 ->
String = 'OK'
请求发送重置密码的邮件。
邮件中会有一个指向回调的超链接,回调会带上一个 URL 参数 sign
作为数字签名(内含用户 ID 信息),用于下一步操作。
此接口每用户每分钟只能请求 1 次。
此接口用同步方式发邮件,会阻塞,设有 15 秒超时。
-
callback
: 回调 URL,会出现在邮件中供用户点击。 -
lookup
:需要重置的用户的用户名或邮箱。
- 400:
callback
不合法,lookup
不存在。 - 429:请求过于频繁。
- 500:邮件发送失败。
- 200 ->
String = 'OK'
重置密码。
此接口中的 sign
参数即为上一步添加到回调 URL 上的 sign
。
sign
参数时效为 5 分钟,超时后该数字签名即无效。
{
sign*: String,
new_password*: String
}
- 400:数字签名损坏、超时,用户不存在,新密码不合法。
- 200 ->
String = 'OK'
获取用户列表。
username
first_name
last_name
- 200 ->
Page<User>
获取用户信息。
- 404
- 403: 未登录
- 200 ->
User
修改自己的用户信息。
- 403:未登录
- 200 ->
User
获取粉丝列表。
- 403:未登录
- 200 ->
Page<User>
获取关注者列表。
- 403:未登录
- 200 ->
Page<User>
关注一个人。关注自己或已关注时静默失败。
- 200 ->
'OK'
取消关注一个人。静默失败同上。
- 200 ->
'OK'
- 200 ->
List<String>
: 分类列表
type Category = {
category: String,
count: Number,
unread: Number
}
- 200 ->
List<Category>
:分类详情信息
- 200 ->
String = 'OK'
- 200 ->
String = 'OK'
has_read
category
-
ids: CommaSeparatedInt
:用 id 列表筛选
list
retrieve