-
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'
获取用户列表。
usernamefirst_namelast_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_readcategory-
ids: CommaSeparatedInt:用 id 列表筛选
listretrieve