View on GitHub

mission_craft

Weclome to ApiDoc


简介

这是Mission Craft系统中使用的API接口文档,此文档在开发过程前后端交互中逐步完善。



用户接口

获取邮箱验证码

请求地址

/code/

HTTP方法

POST

请求参数

参数名 是否必须 示例值 描述
email 123@qq.com 用于接收验证码的邮箱

返回示例

{
    "staus" : 200,
    "message": "Generate and send token successfully"
}

用户注册

请求地址

/user/

HTTP方法

POST

请求参数

参数名 是否必须 示例值 描述
username pj 用户名
sid 16340000 学号
email 9039989@qq.com 邮箱
password 123456 密码
code 1234 手机接收的验证码

返回示例

{
    "staus" : 201,
    "message": "Register successfully"
}

用户登录

登录以获得token,使用token来验证用户信息。

请求地址

/token/

HTTP方法

POST

请求参数

参数名 是否必须 示例值 描述
username_or_email pj或123@qq.com 用户昵称或注册的邮箱
password 123456 登录密码

返回示例

{
    "staus" : 201,
    "data" : {
        "token" : 1234
    },
    "message": "Login successfully"
}

得到个人信息

请求地址

/user/

HTTP方法

GET

请求参数

参数名 是否必须 示例值 描述
token 123 登录时所获得的token

返回示例

{
    "staus" : 200,
    "data" : {
        "username" : "pj",
        "sid" : "16040000",
        "email" : "123@qq.com",
        "avatar" : "\..\..",
        "university" : "中山大学",
        "school": "数据院",
        "grade": "大三",
        "gender" : 0,
        "qq": "90379",
        "phone": "12321",
        "wechat" : "90379",
        "mission_pub_num": 10,
        "mission_fin_num": 10
    },
    "message": "Get user info successfully"
}

修改个人信息

请求地址

/user/

HTTP方法 PUT

请求参数

参数名 是否必须 示例值 描述
token 123 登录所返回的token
username pj 修改的用户名
university 大山中学 修改的学校
school 学院 修改的学院
grade 大三 修改的年级
gender 0 0为男,1为女
phone +86 136012138485 电话号码
qq 90317 qq号
wechat 90325 微信号

返回示例

{
    "staus" : 200,
    "message": "Update user info successfully"
}

修改密码

请求地址

/password/

HTTP方法 POST

请求参数

参数名 是否必须 示例值 描述
token 123 登录所返回的token
username pj 用户名
old_password Pj123456 原密码
new_password PJ123 新密码

返回示例

{
    "staus" : 200,
    "message": "Change password successfully"
}

上传头像

请求地址

/avatar/

HTTP方法

POST

请求参数

参数名 是否必须 示例值 描述
token 123 登录所返回的token
image   上传头像文件(type=file),仅允许.jpg,.jpeg,.png类型

返回示例

{
    "staus" : 200,
    "data" : {
        "avator" : "\..\.."
    },
    "message": "Get user avatar successfully"
}

得到头像

请求地址

/avatar/

HTTP方法

GET

请求参数

参数名 是否必须 示例值 描述
token 123 登录所返回的token

返回示例

{
    "staus" : 200,
    "data" : {
        "avator" : "www.domain.com/image/.."
    },
    "message": "change avatar successfully"
}


任务接口

得到任务信息

根据传递的参数获得所需的功能

请求地址

/mission/

HTTP方法

GET

请求参数

参数名 是否必须 示例值 描述
token 123 登录返回的token
create_time 2019-5-1 14:40:20 返回该时间前的任务
limit 10 最多返回条数
type 0或1 筛选返回类型,0-问卷、1-取快递、None全部
return_problems 0或1 1表示查询结果中需要返回问题信息
return_statistics 0或1 1表示查询结果中需要返回答案统计信息
bounty 10 筛选最低报酬
personal 0或1 0对应第一个功能,1对应第2个功能
mission_id 123 返回特定id对应的任务

返回示例

{
    "staus" : 200,
    "data" : {
        "missions" : [
            {
            "mission_id": 10, 
            "create_time":"2019-5-1 14:40:20",
            "deadline": "2019-6-1 14:40:20",
            "title":"标题", 
            "description":"描述",
            "bounty":10,
            "max_num":10,
            "receiver_id":null,
            "rcv_num":5,
            "fin_num":2,
            "finish_time":"2019-5-10 14:40:20",
            "type":0, 
            "publisher_id":10, 
            "username":"pj",
            "avatar":"www.domain.com/imgage/..",
            "receiver_id":1,
            "receiver_name":'pj',
            "receviver_avatar": "www.domain/image/1.png",
            "recevier_qq": "12345648",
            "receiver_wechat": "13246790",
            "receiver_phone": "136976464",
            "receiver_other_way": "facebook: 1232213",
            "receiver_time":"2010-10-10 11:11:11",
            "problems":[
                { 'type': 0, 'question': '单选问题', 'choices': ['选项1', '选项2'], 'answer': [10,20]},
                { 'type': 1, 'question': '多选问题', 'choices': ['选项1', '选项2'], 'answer': [20,30] },
                { 'type': 2, 'question': '填空问题' , 'answer': ['answer1', 'answer2']}]
            },
            ...

        ],
        "unread_notification_num": 10 
    },   
    "message": "Get missions successfully"
}

发布任务

请求地址

/mission/

HTTP方法

POST

请求参数

参数名 是否必须 示例值 描述
token 123 登录返回的token
type 类型 0表示问卷,1表示其他
deadline 2019-5-1 14:40:20 结束时间,如果是取快递,就不需要(默认为3天)
title “标题1” 标题
descrption “描述” 任务描述
qq 123 联系信息四个必有其一
phone 183  
wechat ousx  
other_way 其它  
bounty 100 赏金
max_num 10 最大接收人,默认为1
problems “problems”:[
{ ‘type’: 0, ‘question’: ‘单选问题’, ‘choices’: [‘选项1’, ‘选项2’], ‘answer’: [10,20]},
{ ‘type’: 1, ‘question’: ‘多选问题’, ‘choices’: [‘选项1’, ‘选项2’], ‘answer’: [20,30] },
{ ‘type’: 2, ‘question’: ‘填空问题’ , ‘answer’: [‘answer1’, ‘answer2’]}]
以数组形式上传

返回示例

{
    "staus" : 200,
    "mission_id": 123,
    "message": "Create mission successfully"
}

取消或中断任务

请求地址

/mission/

HTTP方法

PUT

请求参数

参数名 是否必须 示例值 描述
token 123 登录返回的token
mission_id 123456 id

返回示例

{
    "staus" : 200,
    "message": "ok"
}


订单接口

mission和order的区别是order是领取者领取的时候产生。问卷类型的mission可以有多个order,而取快递类型的mission只有一个order。再者,order有每个人领取任务的时间,而mission没有。

查询个人领取订单

若查看个人发布的任务,使用/mission API

请求地址

/order/

HTTP方法

GET

请求参数

参数名 是否必须 示例值 描述
token 123 登录时所用的token

返回示例

{
    "staus" : 200,
    "data" : {
        "orders" : [{
            "order_id" : 1,
            "receiver_id": 123,
            "publisher_id": 124,
            "order_state": 1,
            "publisher_confirm":1,
            "receiver_confirm": 1,
            "receive_time": "2019-6-1 14:40:20",
            "finish_time": "2019-6-1 14:40:20",
            'publisher_id' : 1,
            'mission_id': 1,
            'title': '标题',
            'type': 1
        },...
        ]
    },
    "message": "ok"
}

创建个人订单

用户接单,产生订单。

请求地址

/order/

HTTP方法

POST

请求参数

参数名 是否必须 示例值 描述
token 123 登录时所用的token
mission_id 123 任务id
wechat 123456789 如果是快递任务需要4种临时联系方式之一
qq 123456789 如果是快递任务需要4种临时联系方式之一
phone 1369039959+ 如果是快递任务需要4种临时联系方式之一
other_way ‘facebook号:123465’ 如果是快递任务需要4种临时联系方式之一

返回示例

{
    "staus" : 200,
    "order_id":123,
    "message": "ok"
}

确认个人订单

PUT

请求参数

参数名 是否必须 示例值 描述
token 123 登录时所用的token
order_id 123 订单id
answers [
0,(单选选第一个)
[0,1],(多选选第一和第二个)
‘填空题答案’(填空题答案)
]
问卷类型提交必须有

返回示例

{
    "staus" : 200,
    "message": "Confirm order successfully"
}


通知接口

获取通知

请求地址

/notification/

HTTP方法

GET

请求参数

参数名 是否必须 示例值 描述
token 123 登录返回的token

返回示例

{
    "staus" : 200,
    "data" : {
        "notifications" : [{
            "n_id" : 123,
            "mission_id": "",
            "message": "这个message是后台生成还是怎样",
            "time":"2019-6-1 14:40:20",
            "has_read": True
        }, ...
        ]
    },
    "message": "ok"
}

修改通知已读情况

请求地址

/notification/

HTTP方法

PUT

请求参数

参数名 是否必须 示例值 描述
token 123 登录返回的token
notification [{“n_id”:123,”has_read”:True}] 一个列表

返回示例

{
    "staus" : 200,
    "data" : {
        "notifications" : [{
            "n_id" : 123,
            "mission_id": 123456,
            "message": "这个message是后台生成",
            "create_time":"2019-6-1 14:40:20",
            "has_read": True
        }, ...
        ]
    },
    "message": "ok"
}


删除通知

请求地址

/notification/

HTTP方法

DELETE

请求参数

参数名 是否必须 示例值 描述
token 123 登录返回的token
notification [{“n_id”:123},…] 一个

返回示例

{
    "staus" : 200,
    "data" : {
        "notification" : [{
            "n_id" : 123
        }, ...
        ]
    },
    "message": "ok"
}