@yangxitian
2017-04-09T02:29:47.000000Z
字数 25824
阅读 1428
WYUCloud
Secret:Bearer {{token}}
token在指定时间内过期,会自动刷新token,也是以上面的格式返回
status说明:
400: 找不到token,或者token已经失效,需要重新登陆
401: jwt token无效,重新登陆
403: 业务逻辑上权限不足
422: 参数错误或者业务逻辑上的错误
500: 系统错误
503: 系统维护中
后台统一了错误信息的返回,格式如下:
{"status": xxx, //http码"position": "XXXXXXXXXX", //错误位置,debug模式才存在"inform": "XXX" //需要显示的错误通知,可能为数组或字符串,每个api只会有一种情况。(我也不是很确定,出现多种情况,告诉我。。。)}
GET
auth/sendRegisterCode
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| 注册的邮箱 | Y |
Response
status 200(success)
{"message": "发送成功"}
POST
auth/register
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| 注册邮箱 | Y | ||
| code | 邮箱收到的验证码 | Y | |
| password | 登陆密码 | Y | 最小6位 |
| password_confirmation | 确定密码 | Y | |
| v_name | 昵称 | Y | max 8个字 |
| phone | 长号 | Y | |
| t_name | 真实姓名 | Y | max 8个字 |
Response
status 200(success)
{"message": "注册成功","data": {"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdDo4MDAwXC9hdXRoXC9yZWdpc3RlciIsImlhdCI6MTQ3MjQ0MTU1MCwiZXhwIjoxNDcyNDQ4NzUwLCJuYmYiOjE0NzI0NDE1NTAsImp0aSI6IjhkZGQ2YjRlNGI2YzlhMTg3NDMxNzcwMTNiOGM1ZWExIn0.DcuGBDb0xJuJkML2NLRB4PglzinRhlaW6MwV-nKUXyQ", //token"id": 3,"email": "2581318149@qq.com","v_name": "RainDay","v_head": null,"is_auth": false //是否为认证开发者}}
GET
common/captcha/{type}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| type | 注册的邮箱 | N | 1 返回src 0 返回图片(默认) |
Response
if(type == 1)
{"message": "获取成功","data": "http://localhost:8000/captcha/default?xIhz5HkR"}
else if (type == 0)
一张图片
Example
<img src="{{base_url}}/common/captcha">
POST
auth/authorize
withCredentials
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| 邮箱 | Y | ||
| password | 登陆密码 | Y | |
| code | 验证码 | N | 账号密码错误后需要 |
Response
status 200(success)
{"message": "登陆成功","data": {"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdDo4MDAwXC9hdXRoXC9hdXRob3JpemUiLCJpYXQiOjE0NzI2NTUwNDEsImV4cCI6MTQ3MjY2MjI0MSwibmJmIjoxNDcyNjU1MDQxLCJqdGkiOiIyYzdjOTlmNTc0YzFjZDkyNDY2YmNjYWEyZTM2YzU3NCJ9.CHFigwzZxi2l1Pm_zX2X0DXsg58Vpy-vlm_oipD-hI0","id": 3,"email": "2581318149@qq.com","v_name": "RainDay","v_head": "","is_auth": false}}
直接删除掉localstory中的token即可
GET
user/find
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| string | 搜索字符串 | Y | 邮箱或者昵称 |
Response
{"message": "操作成功","data": [{"id": 5,"v_name": "shelter2","v_head": "","is_auth": false}]}
GET
user/resume
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| id | 用户id | N | 默认查看用户自己信息 |
Response
{"message": "操作成功","data": {"id": 4,"email": "2581318149@qq.com","qq": "2581318149","phone": "18219111772","short_phone": "681772","v_name": "shelter", //昵称"v_head": "", //头像"t_name": "羊锡添", //真实姓名"t_head": "", //本人照片"sex": "男", //性别"motto": "", //座右铭"student_live_id": 3, //显示的教育身份id"address": "","native_place": "", //籍贯"is_free": 0, //是否空闲接单 默认非空闲"is_auth": false, //是否为认真开发者"visitor_volume": 0, //主页访问数量"updated_at": "2016-09-18 23:16:14", //上次更新时间"skills": [ //技能{"id": 3,"name": "微信开发","access": 80}],"prizes": [ //奖项{"id": 2,"name": "最强少年","get_time": "2012-10-01 10:10:05"}],"credentials": [ //已获证书{"id": 4,"name": "Second Blood"}],"education_lives": [ //教育经历{"id": 2,"school": "五邑大学","major": "信息安全","diploma": "研究生","graduate_year": "2018-06-01 00:00:00","weight": 90}],"practice_lives": [ //实习经历{"id": 3,"start_at": "2016-09-01 00:00:00","end_at": "0000-00-00 00:00:00","department": "腾讯科技","position": "技术总监","introduction": "qq的开发与监督","weight": 90}],"student_lives": [ //在校经历{"id": 3,"start_at": "2015-10-02 00:00:00","end_at": "0000-00-00 00:00:00","department": "袂卓建材搬运有限公司2","position": "web开发组成员","introduction": "主要负责日常工作室web项目的开发与维护。","weight": 90}],"item_experiences": [{"id": 2,"user_id": 2,"name": "邑大云","link": "wyucloud.cn","introduction": "品质众包,值得信赖","position": "项目负责人","start_at": "2016-09-01 00:00:00","end_at": "2016-12-01 00:00:00"}]}}
POST
user/uploadHead/{type}
修改用户自己的头像
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| type | 类型 | Y | 't' 简历头像 'v' 虚拟头像 |
| head | 图片 | Y | 只允许上传jpg,png,gif |
Response
status 200(success)
{"message": "上传成功","data": {"head_url": "upload/img/user_head/1ysSx1sLt.png"}}
POST
user/updateInfo
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| N | |||
| phone | 长号 | N | |
| v_name | 昵称 | N | |
| t_name | 真实姓名 | N | |
| sex | 性别 | N | 男/女 |
| is_free | 是否为接单状态 | N | |
| *short_phone | 短号 | N | |
| *motto | 座右铭 | N | |
| *student_live_id | 显示身份 | N | |
| *address | 联系地址 | N | |
| *native_place | 籍贯 | N |
有星号的字段允许被修改为空,否则传空值会修改无效
Response
status 200(success)
{"message": "操作成功"}
GET
user/skill
Response
{"message": "操作成功","data": [{"id": 1,"name": "PHP"},{"id": 2,"name": "JAVA"},{"id": 3,"name": "微信"}]}
POST
user/skill
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| skill_id | 技能ID | Y | |
| access | 技能评估 | Y | 1~100 |
Response
status 200(success)
{"message": "操作成功"}
DELETE
user/skill/{skill_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| skill_id | 技能ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/skill/{skill_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| skill_id | 技能ID | Y | 附加在url后面 |
| access | 技能评估 | Y | 1~100 |
Response
status 200(success)
{"message": "操作成功"}
POST
user/prize
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 奖项名字 | Y | 最长32个字 |
| get_time | 获奖时间 | Y | 格式 0000/00/00 |
Response
status 200(success)
{"message": "添加成功","data": {"prize_id": 8}}
DLETE
user/prize/{prize_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| prize_id | 奖项ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/prize/{prize_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| prize_id | 奖项ID | Y | |
| name | 奖项名字 | N | 最长32个字 |
| get_time | 获奖时间 | N | 格式 0000/00/00 |
Response
status 200(success)
{"message": "操作成功"}
POST
user/studentLive
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| department | 部门 | Y | 最长12个字 |
| position | 职位 | Y | 最长12个字 |
| start_at | 开始时间 | Y | '0000/00/00' |
| end_at | 结束时间 | Y | '0000/00/00' 传空值表示至今 |
| introduction | 感想与收获 | Y | 最长128个字 |
| weight | 权值 | Y | 1~100,越大排越前 |
Response
status 200(success)
{"message": "操作成功","data":["student_live_id":1]}
DELETE
user/studentLive/{student_live_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| student_live_id | 在校经历ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/studentLive/{student_live_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| student_live_id | 在校经历ID | Y | |
| department | 部门 | N | 最长12个字 |
| position | 职位 | N | 最长12个字 |
| start_at | 开始时间 | N | '0000/00/00' |
| end_at | 结束时间 | N | '0000/00/00' 传空值表示至今 |
| introduction | 感想与收获 | N | 最长128个字 |
| weight | 权值 | N | 1~100,越大排越前 |
Response
status 200(success)
{"message": "操作成功"}
POST
user/educationLive
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| school | 学校或机构名称 | Y | 最长32个字 |
| major | 专业或方向 | Y | 最长32个字 |
| diploma | 学历 | Y | 最长4个字,本科大专等 |
| graduate_year | 毕业年份 | Y | '0000/00/00' |
| weight | 权值 | Y | 1~100,越大排越前 |
Response
status 200(success)
{"message": "操作成功","data":["education_live_id":1]}
DELETE
user/educationLive/{education_live_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| education_live_id | 教育经历ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/educationLive/{education_live_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| education_live_id | 在校经历ID | Y | |
| school | 学校或机构名称 | N | 最长32个字 |
| major | 专业或方向 | N | 最长32个字 |
| diploma | 学历 | N | 最长4个字,本科大专等 |
| graduate_year | 毕业年份 | N | '0000/00/00' |
| weight | 权值 | N | 1~100,越大排越前 |
Response
status 200(success)
{"message": "操作成功"}
POST
user/practiceLive
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| start_at | 开始时间 | Y | '0000/00/00' |
| end_at | 结束时间 | Y | '0000/00/00' 传空字符串代表至今 |
| department | 公司部门 | Y | 最长32个字 |
| position | 职位 | Y | 最长32个字 |
| introduction | 简介与感想 | Y | 最长64个字 |
| weight | 权值 | Y | 1~100,越大排越前 |
Response
status 200(success)
{"message": "操作成功","data": {"practice_live_id": 4}}
DELETE
user/practiceLive/{practice_live_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| practice_live_id | 实习经历ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/practiceLive
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| practice_live_id | 实习经历ID | Y | |
| start_at | 开始时间 | N | '0000/00/00' |
| end_at | 结束时间 | N | '0000/00/00' 传空字符串代表至今 |
| department | 公司部门 | N | 最长32个字 |
| position | 职位 | N | 最长32个字 |
| introduction | 简介与感想 | N | 最长64个字 |
| weight | 权值 | N | 1~100,越大排越前 |
Response
status 200(success)
{"message": "操作成功"}
POST
user/credentials
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 证书名字 | Y | max:16 |
Response
status 200(success)
{"message": "操作成功","data":["credentials_id":1]}
DELETE
user/credentials/{credentials_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| credentials_id | 证书ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/credentials/{credentials_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| credentials_id | 证书ID | Y | |
| name | 证书名字 | Y |
Response
status 200(success)
{"message": "操作成功"}
POST
user/itemExperience
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 项目名称 | Y | max 64 |
| link | 演示链接 | Y | max 128 |
| introduction | 项目简介 | Y | |
| position | 负责部分 | Y | max 64 |
| start_at | 开始时间 | Y | 格式 2016/9/1 |
| end_at | 结束时间 | Y | 格式 2016/9/1,空值代表至今 |
Response
status 200(success)
{"message": "操作成功","data": {"id": 2}}
PUT
user/itemExperience/{item_experience_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_experience_id | 项目经历Id | Y | |
| name | 项目名称 | N | |
| link | 演示链接 | N | |
| introduction | 项目简介 | N | |
| position | 负责部分 | N | |
| start_at | 开始时间 | N | 格式 2016/9/1 |
| end_at | 结束时间 | N | 格式 2016/9/1,空值代表至今 |
Response
status 200(success)
{"message": "操作成功","data": {"id": 2}}
DELETE
user/itemExperience/{item_experience_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_experience_id | 项目经历Id | Y |
Response
status 200(success)
{"message": "操作成功"}
GET
user/team
Response
status 200(success)
{"message": "操作成功","data": [{"id": 1,"name": "WYUCloud","logo_path": "upload/img/team_logo/1-0OieIA.jpg","position": 1}]}
GET
user/team/{team_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队id | Y |
这里权限判断还未完成,也就是说任何人可以查看任何团队的首页
Response
status 200(success)
{"message": "操作成功","data": {"id": 1,"name": "WYUCloud","qq": "2581318149","introduction": "移动开发工作室","visitor_volume": 0, //团队简历访问量"logo_path": "upload/img/team_logo/1-0OieIA.jpg","announcements": [ //团队公告 这里最多取8条最新公告{"id": 6,"user_id": 2,"title": "此命令做的事1","content": "注意:配置信息缓存不会随着更新而自动重载,所以,开发时候建议关闭配置信息缓存,一般在生产环境中使用,可以配合 Envoy 任务运行器 一起使用。","created_at": "3 weeks ago","user": {"id": 2,"v_head": "","v_name": "shelter"}}],"weekly_group": [ //团队周报组 这里最多取8个最新的周报组{"id": 1,"user_id": 2,"name": "web组报告","created_at": "2 weeks ago","user": {"id": 2,"v_head": "","v_name": "shelter"}}]}}
POST
user/team
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 团队名字 | Y | 最长16 |
| introduction | 团队简介 | Y | 最长255 |
| 团队qq群 | N |
Response
status 200(success)
{"message": "操作成功","data": {"team_id": 4}}
POST
user/team/{team_id}/update
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| name | 团队名字 | N | |
| 团队qq群 | N | ||
| introduction | 团队简介 | N | |
| logo | 团队头像 | N | formdata |
Response
status 200(success)
{"message": "操作成功","data": {"logo_path": "upload/img/team_logo/O9OTCA1b.jpg" //修改logo时,会返回}}
DELETE
user/team/{team_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y |
只有队长有权限修改,否则返回403 业务逻辑权限不足
Response
status 200(success)
{"message": "操作成功"}
GET
user/team/{team_id}/listTeammate
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| page | 页数 | N | 默认1 |
| count | 每页显示的条数 | N | 默认10 |
读取结果,权限越高的人排越前,即队长永远都是第一个
{"message": "操作成功","data": {"per_page": "1","current_page": 1,"next_page_url": "http://localhost:8000/user/team/5/listTeammate?page=2","prev_page_url": null,"from": 1,"to": 1,"data": [{"id": 4,"v_name": "shelter","v_head": "","motto": "","is_auth": false,"position": 2}]}}
PUT
user/team/{team_id}/addTeammate
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| user_id | 用户ID | Y |
只有队长、管理员有权限添加
Response
status 200(success)
{"message": "操作成功"}
PUT
user/team/{team_id}/deleteTeammate
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| user_id | 用户ID | Y |
只有队长、管理员有权限添加
Response
status 200(success)
{"message": "操作成功"}
PUT
user/team/{team_id}/OPManager
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| user_id | 用户ID | Y | |
| type | 类别 | Y | 0 取消管理员身份 1 提升为管理员 |
只有队长有权限添加
Response
status 200(success)
{"message": "操作成功"}
GET
user/team/{team_id}/announcement
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| page | 页数 | N | 默认第1页 |
| count | 每页显示的条数 | N | 默认10条 |
Response
status 200(success)
{"message": "操作成功","data": {"per_page": "2", //每页显示条数"current_page": 1, //当前页数"next_page_url": "http://localhost:8000/user/team/5/announcement?page=2", //下一页api, 这里并不需要显示页码,显示上一页下一页即可"prev_page_url": null, //上一页api"from": 1,"to": 2,"data": [{"id": 10,"user_id": 2,"title": "sldifkhjasif","content": "asdfagfewqrgfvagvrgaqewrgf","created_at": "3 weeks ago","user": {"id": 2,"v_head": "upload/img/user_head/2XVF2uZc5.jpg","v_name": "shelter"}}]}}
POST
user/team/{team_id}/announcement
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| title | 公告标题 | Y | 最长12字 |
| content | 公告内容 | Y | 最长500字 |
只有队长、管理员有权限添加
Response
status 200(success)
{"message": "操作成功","data": {"announcement_id": 2}}
PUT
user/team/{team_id}/announcement/{announcement_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| announcement_id | 公告ID | Y | |
| title | 标题 | N | max 12 |
| content | 内容 | N | max 500 |
只有队长、管理员有权限修改
Response
status 200(success)
{"message": "操作成功"}
DELETE
user/team/{team_id}/announcement/{announcement_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| announcement_id | 公告ID | Y |
只有队长、管理员有权限删除
Response
status 200(success)
{"message": "操作成功"}
POST
user/team/{team_id}/sign
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y |
Response
status 200(success)
{"message": "操作成功","data": {"id": 14}}
GET
user/team/{team_id}/sign
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y |
此api暂不开发,待界面样式确定后再开发
GET
user/team/{team_id}/weeklyGroup
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| page | 页数 | N | 默认1 |
| count | 每页显示条数 | N | 默认10 |
Response
status 200(success)
{"message": "操作成功","data": {"per_page": 10,"current_page": 1,"next_page_url": null,"prev_page_url": null,"from": 1,"to": 3,"data": [{"id": 1,"user_id": 4, //创建者,下方有简单信息"name": "web组报告","created_at": "2016-09-26 10:31:46","user": {"id": 4,"v_name": "shelter","v_head": ""}}]}}
POST
user/team/{team_id}/weeklyGroup
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| name | 组别名称 | Y |
Response
status 200(success)
{"message": "操作成功","data": {"id": 4}}
PUT
user/team/{team_id}/weeklyGroup/{group_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| group_id | 组别ID | Y | |
| name | 组别名称 | Y |
Response
status 200(success)
{"message": "操作成功"}
DELETE
user/team/{team_id}/weeklyGroup/{group_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| group_id | 组别ID | Y |
Response
status 200(success)
{"message": "操作成功"}
GET
user/team/{team_id}/weeklyGroup/{group_id}/weekly
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| group_id | 组别ID | Y |
Response
status 200(success)
{"message": "操作成功","data": [{"id": 4,"user_id": 5,"study": "123123", //本周学习"defect": "dfasdf", //不足之处"plan": "asdfasd", //下周计划"updated_at": "1 day ago", //上次编辑时间"user": {"id": 5,"v_name": "尚锦","v_head": ""}}]}
POST
user/team/{team_id}/weeklyGroup/{group_id}/weekly
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| group_id | 组别ID | Y | |
| *study | 本周学习 | N | |
| *defect | 不足之处 | N | |
| *plan | 下周计划 | N |
传空值建立空周报。
星号允许为空。
Response
status 200(success)
{"message": "操作成功","data": ["weekly_id" : 1]}
PUT
user/team/{team_id}/weeklyGroup/{group_id}/weekly/{weeky_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| group_id | 组别ID | Y | |
| weeky_id | 周报ID | Y | |
| *study | 本周学习 | N | |
| *defect | 不足之处 | N | |
| *plan | 下周计划 | N |
星号允许为空
Response
status 200(success)
{"message": "操作成功"}
DELETE
user/team/{team_id}/weeklyGroup/{group_id}/weekly/{weeky_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| team_id | 团队ID | Y | |
| group_id | 组别ID | Y | |
| weeky_id | 周报ID | Y |
Response
status 200(success)
{"message": "操作成功"}
GET
item/type
Response
status 200(success)
{"message": "操作成功","data": [{"id": 5,"name": "网站开发","logo_path": "upload/img/item_type_logo/orLT6Yz8.jpg"}]}
GET
item
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 项目名称 | N | |
| status | 状态 | N | 2招募中 3招募完成 默认返回全部 |
| type_id | 项目类别 | N | |
| page | 页数 | N | 默认1 |
| count | 每页显示的条数 | N | 默认30 |
Response
status 200(success)
{"message": "操作成功","data": {"per_page": 30,"current_page": 1,"next_page_url": null,"prev_page_url": null,"from": 1,"to": 2,"data": [{"id": 2,"name": "test3","cover_path": "","is_team": true,"salary": 1000000,"status": "1","type_id": 6,"type": {"id": 6,"name": "web开发","logo_path": "upload/img/item_type_logo/Bc92cRnW.jpg"},"technologies": [{"id": 2,"name": "后台开发","describe": "服务器端的设计与开发,数据库的设计与维护"}]}]}}
GET
item/{item_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y |
Response
status 200(success)
{"message": "操作成功","data": {"id": 1,"name": "test3","introduction": "这是一个测试项目","functions": "主要功能是用来测试而已","cover_path": "xxxxx","type_id": 5,"remark": "没有什么好备注的,反正只是测试项目","is_team": true,"pre_start_at": "2016-10-09 00:00:00","pre_end_at": "2016-12-31 00:00:00","salary": 1000000,"link": "","status": "1","type": {"id": 5,"name": "网站开发","logo_path": "upload/img/item_type_logo/orLT6Yz8.jpg"},"documents": [{"id": 2,"item_id": 1,"name": "test文件","path": "upload/item_document/bwjrPLhe.zip","created_at": "2016-10-10 11:46:16"}]}}
GET
/user/item/listService
Response
{"message": "操作成功","data": [{"id": 1,"name": "软件开发","describe": "已有详细的需求文档、产品原型和UI设计标注,需要软件工程师进行产品开发、测试并部署上线","logo": "upload/img/item_service_logo/0a687c.png"}]}
GET
/user/item/listTechnology
Response
{"message": "操作成功","data": [{"id": 1,"name": "前端开发","describe": "web界面的开发与实现"}]}
GET
user/item
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 项目名称 | N | |
| status | 状态 | N | 1审核中 2招募中 3招募完成 4未通过审核 默认返回全部 |
| type_id | 项目类别 | N | |
| page | 页数 | N | 默认1 |
| count | 每页显示的条数 | N | 默认30 |
Response
status 200(success)
{"message": "操作成功","data": {"per_page": 30,"current_page": 1,"next_page_url": null,"prev_page_url": null,"from": 1,"to": 2,"data": [{"id": 2,"name": "test3","cover_path": "","is_team": true,"salary": 1000000,"status": "1","type_id": 6,"type": { //项目类别"id": 6,"name": "web开发","logo_path": "upload/img/item_type_logo/Bc92cRnW.jpg"},"technologies": [{"id": 2,"name": "后台开发","describe": "服务器端的设计与开发,数据库的设计与维护"}]}]}}
GET
user/item/{item_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y |
Response
status 200(success)
{"message": "操作成功","data": {"id": 2,"name": "test3","introduction": "这是一个测试项目","functions": "主要功能是用来测试而已","type_id": 6,"remark": "没有什么好备注的,反正只是测试项目","is_team": true,"pre_start_at": "2016-10-09 00:00:00","pre_end_at": "2016-12-31 00:00:00","salary": 1000000,"link": "","status": "1","type": { //项目类别"id": 6,"name": "web开发","logo_path": "upload/img/item_type_logo/Bc92cRnW.jpg"},"applicants": [ //项目申请者{"id": 2,"item_id": 2,"user_id": 2,"team_id": 2,"techonology_id": 2,"explain": "吾乃阿里扫地僧,无敌甚是无聊也,故纳之以耗时也。","created_at": "2016-10-10 23:09:59","user": {"id": 2, //用户ID 根据这个跳到用户简历"t_head": "","t_name": "羊锡添","is_auth": false //是否为认证开发者}}],"documents": [{"id": 2,"item_id": 1,"name": "test文件","path": "upload/item_document/bwjrPLhe.zip","created_at": "2016-10-10 11:46:16"}],"technologies": [{"id": 2,"name": "后台开发","describe": "服务器端的设计与开发,数据库的设计与维护"}]}}
POST
user/item
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 项目名称 | Y | max:16 |
| introduction | 项目介绍 | Y | |
| functions | 项目功能清单 | Y | |
| *remark | 备注 | Y | |
| is_team | 是否为团队 | Y | 独立开发者 0 开发团队 1 |
| technology_ids | 开发者类型id | N | 数组[1,2,...] 当is_team为0,则必须 |
| type_id | 项目类型ID | Y | |
| *pre_start_at | 项目预计开始时间 | Y | 不传代表不限期 |
| *pre_end_at | 项目预计结束时间 | Y | |
| salary | 预算报酬 | Y | |
| 有效邮箱 | Y | ||
| phone | 有效电话 | Y |
前面有星星代表可以为空
Response
status 200(success)
{"message": "操作成功","data": {"id": 3}}
GET
user/item/{item_id}/finish
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y |
Response
status 200(success)
{"message": "操作成功"}
PUT
user/item/{item_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| name | 项目名称 | N | |
| introduction | 项目介绍 | N | |
| functions | 项目功能清单 | N | |
| remark | 备注 | N | |
| type_id | 项目类型ID | N | |
| pre_start_at | 项目预计开始时间 | N | |
| pre_end_at | 项目预计结束时间 | N | |
| salary | 预算报酬 | N | |
| 有效邮箱 | N | ||
| phone | 有效电话 | N |
Response
status 200(success)
{"message": "操作成功"}
DELETE
user/item/{item_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y |
Response
status 200(success)
{"message": "操作成功"}
POST
user/item/{item_id}/document
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| file | 文件 | Y | formdata 'zip', 'rar' 不大于10M |
Response
status 200(success)
{"message": "操作成功","data": {"id": 2,"item_id": 1,"name": "test文件","path": "upload/item_document/bwjrPLhe.zip","created_at": "2016-10-10 11:46:16"}}
POST
user/item/{item_id}/document/{document_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| document_id | 附件ID | Y | |
| name | 附件名称 | N | |
| file | 文件 | N | formdata 'zip', 'rar' 不大于10M |
Response
status 200(success)
{"message": "操作成功","data": {"path": "upload/item_document/gAWyLKje.zip" //修改文件时会返回}}
DELETE
user/item/{item_id}/document/{document_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| document_id | 附件ID | Y |
Response
status 200(success)
{"message": "操作成功"}
GET
user/item/apply
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| page | 页数 | N | 默认1 |
| count | 每页现实的条数 | N | 默认30 |
Response
status 200(success)
{"message": "操作成功","data": {"per_page": "2","current_page": 2,"next_page_url": null,"prev_page_url": "http://localhost:8000/user/item/2/apply?page=1","from": 3,"to": 3,"data": [{"id": 2,"item_id": 2,"user_id": 2, //这个就是认证用户的id 可以忽略"explain": "吾乃阿里扫地僧,无敌甚是无聊也,故纳之以耗时也。","created_at": "2016-10-10 23:09:59","item": {"id": 2,"name": "test3","cover_path": "","introduction": "这是一个测试项目"}}]}}
POST
user/item/{item_id}/apply
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| explain | 自我推荐 | Y | 最长256字 |
| team_id | 团队ID | N | 团队申请项目时使用 |
| technology_id | 开发者类型ID | N | 独立开发者时使用 |
Response
status 200(success)
{"message": "操作成功","data": {"id": 4}}
PUT
user/item/{item_id}/apply/{apply_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| apply_id | 申请ID | Y | |
| explain | 自我推荐 | Y | 最长256字 |
Response
status 200(success)
{"message": "操作成功"}
DELETE
user/item/{item_id}/apply/{apply_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y | |
| apply_id | 申请ID | Y |
Response
status 200(success)
{"message": "操作成功"}
POST
auth/adminAuthorize
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| 邮箱 | Y | ||
| password | 登陆密码 | Y | |
| code | 验证码 | N | 账号密码错误后需要 |
Response
status 200(success)
{"message": "登陆成功","data": {"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjMsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdDo4MDAwXC9hdXRoXC9hZG1pbkF1dGhvcml6ZSIsImlhdCI6MTQ3MjY1NTA0NCwiZXhwIjoxNDcyNjYyMjQ0LCJuYmYiOjE0NzI2NTUwNDQsImp0aSI6ImEzMDZhZDRjZDhmOWJhNTQzMGJhNzNlMWNjMDVmZmZhIn0.yabQqvChg_9-fN5gtHx1tIjMfeldaOCAWFTFG2kQsn8","id": 3,"email": "2581318149@qq.com","v_name": "RainDay","v_head": ""}}
GET
admin/user
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| page | 页数 | N | 默认1 |
| count | 每页显示数量 | N | 默认30 |
| 用户邮箱 | N | 支持模糊搜索 | |
| 用户qq | N | 支持模糊搜索 | |
| phone | 用户长号 | N | 支持模糊搜索 |
| short_phone | 用户短号 | N | 支持模糊搜索 |
| v_name | 用户昵称 | N | 支持模拟搜索 |
| t_name | 用户真是姓名 | N | 支持模糊搜索 |
| is_auth | 是否为认证开发者 | N | 1 是 2 不是 默认打印全部 |
| is_free | 是否有空接单 | N | 1 是 2 不是 默认打印全部 |
| is_admin | 是否为管理员 | N | 1 是 2 不是 默认打印全部 |
| is_daleted | 是否被删除 | N | 1 是 2 不是(默认) |
| created_before | 创建截至时间 | N | 按照注册时间搜索用户 格式为 0000-00-00 00:00:00 |
| created_after | 创建起始时间 | N |
Response
{"message": "操作成功","data": {"total": 1, //总共的条数"per_page": 30, //每页显示的条数"current_page": 1, //当前页数"last_page": 1, //最后一页"next_page_url": null, //下一页url"prev_page_url": null, //上一页url"from": 1, //从第几个用户开始返回"to": 1, //到第几个用户结束返回"data": [{"id": 1,"email": "2581318149@qq.com","t_name": "shelter","v_name": "RainDay","v_head": "upload/img/user_head/1V79XFXwU.jpg","is_free": 0,"is_auth": false,"is_admin": true,"visitor_volume": 0,"last_ip": "::1","last_time": "2016-09-02 16:12:56","deleted_at": null}]}}
GET
admin/user/{id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| id | 用户id | Y | 默认1 |
Response
{"message": "操作成功","data": {"id": 1,"email": "2581318149@qq.com","qq": "2581318149","phone": "18219111772","short_phone": "681772","v_name": "RainDay", //昵称"v_head": "upload/img/user_head/1V79XFXwU.jpg", //用户头像"t_name": "shelter", //真实姓名"t_head": "upload/img/user_head/1WpLoQkyo.png", //简历照片"motto": "", //座右铭"study_tag": "", //学位身份"address": "", //地址"native_place": "", //籍贯"is_admin": true, //是否为管理员"is_free": 0, //是否接单状态"is_auth": false, //是否为认证开发者"visitor_volume": 0, //建立访问次数"last_ip": "::1", //上次访问ip"last_time": "2016-09-02 16:10:09", //上次访问时间"deleted_at": null, //是否注销"created_at": "2016-09-01 15:00:25", //创建时间"updated_at": "2016-09-02 16:10:09", //简历更新时间"skills": [ //用户技能{"id": 3, //技能iD"name": "微信开发", //技能名称"deleted_at": null,"created_at": "2016-09-01 15:04:42","pivot": { //这些属性不用管"user_id": 1,"skill_id": 3,"created_at": "2016-09-01 20:10:25","updated_at": "2016-09-01 20:10:25","access": 90 //熟悉程度}}],"prizes": [ //获得奖项{"id": 1,"user_id": 1,"name": "最强少年","get_time": "2012-10-01 10:10:05","created_at": "2016-09-01 15:03:44"}],"credentials": [ //技能证书{"id": 1,"user_id": 1,"name": "CCIE","created_at": "2016-09-01 15:30:13"}],"education_lives": [ //教育经历{"id": 1,"user_id": 1,"school": "五邑大学","major": "信息安全","diploma": "本科","graduate_year": "2018-06-01 00:00:00","weight": 100,"created_at": "2016-09-01 15:22:43","updated_at": "2016-09-01 15:22:43"}],"practice_lives": [ //实习经历{"id": 1,"user_id": 1,"start_at": "2016-09-01 00:00:00","end_at": "0000-00-00 00:00:00","department": "网易科技","position": "技术总监","introduction": "网易云播放器的开发与监督","weight": 100,"created_at": "2016-09-01 15:26:10","updated_at": "2016-09-01 15:26:10"}],"student_lives": [ //在校经历{"id": 1,"user_id": 1,"department": "学生会网络部","position": "委员","start_at": "2012-10-02 00:00:00","end_at": "2013-06-02 00:00:00","introduction": "学习到了视频剪辑和团队合作。平时还负责学生会公众号维护与推送。","weight": 70,"created_at": "2016-09-01 15:15:39","updated_at": "2016-09-01 15:15:39"}],"item_experiences": [{"id": 2,"user_id": 2,"name": "邑大云","link": "wyucloud.cn","introduction": "品质众包,值得信赖","position": "项目负责人","start_at": "2016-09-01 00:00:00","end_at": "2016-12-01 00:00:00","created_at": "2016-10-11 20:55:58"}]}}
GET
admin/addSkill
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 技能名字 | Y |
Response
status 200(success)
{"message": "添加成功","data": {"id": 7}}
status 422(error)
{"status": 422,"message": "参数错误","detail": {"name": ["该技能已经存在"]}}
GET
admin/updateSkill
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| id | 技能id | Y | |
| name | 技能名字 | Y |
Response
status 200(success)
{"message": '操作成功'}
GET
admin/listSkill/{type}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| type | 类别 | N | 1 返回软删除数据 2 返回全部数据 other 返回非软删除数据(默认) |
/admin/listSkill/2Response
status 200(success)
{"message": "读取成功","data": [{"id": 4,"name": "前端","deleted_at": null,"created_at": "2016-07-27 17:42:31"}]}
GET
admin/deleteSkill/{type}/{id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| type | 操作类型 | Y | 1 软删除 2 恢复 |
| id | 技能ID | Y |
Response
status 200(success)
{"message": "操作成功"}
GET
admin/updateSkill/{id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| id | 技能ID | Y |
所以拥有此技能的用户会失去该技能
Response
status 200(success)
{"message": "操作成功"}
GET
admin/itemType
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| type | 读取类别 | Y | 1 读取没有被屏蔽的 2 读取全部 3 读取被屏蔽的 |
Response
status 200(success)
{"message": "操作成功","data": [{"id": 5,"name": "网站开发","logo_path": "upload/img/item_type_logo/orLT6Yz8.jpg","deleted_at": null, //是否被屏蔽,被屏蔽的时间"created_at": "2016-10-08 17:39:55"}]}
POST
admin/itemType
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 类别名称 | Y | |
| logo | 类别logo | Y | formdata |
Response
status 200(success)
{"message": "操作成功","data": {"id": 6,"logo_path": "upload/img/item_type_logo/4YKwA2kJ.jpg"}}
POST
admin/itemType/{item_type_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_type_id | 类别ID | Y | |
| name | 类别名称 | N | |
| logo | 类别logo | N | formdata |
Response
status 200(success)
{"message": "操作成功","data": {"logo_path": "upload/img/item_type_logo/IyLzWE63.jpg" //如有上传新logo会返回}}
DELETE
admin/itemType/{item_type_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_type_id | 类别ID | Y | |
| type | 操作类型 | Y | 1 屏蔽类别 2 删除类别 3 取消屏蔽 |
删除类别 同时会删除改类别下的所有项目。
Response
status 200(success)
{"message": "操作成功"}
GET
admin/item
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| name | 项目名称 | N | |
| status | 状态 | N | 1审核中 2招募中 3招募完成 4未通过审核 默认返回全部 |
| type_id | 项目类别 | N | |
| page | 页数 | N | 默认1 |
| count | 每页显示的条数 | N | 默认30 |
Response
status 200(success)
{"message": "操作成功","data": {"per_page": 30,"current_page": 1,"next_page_url": null,"prev_page_url": null,"from": 1,"to": 2,"data": [{"id": 2,"name": "test3","cover_path": "","introduction": "这是一个测试项目","salary": 1000000,"status": "1","type_id": 6,"type": { //项目类别"id": 6,"name": "web开发","logo_path": "upload/img/item_type_logo/Bc92cRnW.jpg"}}]}}
GET
admin/item/{item_id}
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目ID | Y |
Response
status 200(success)
{"message": "操作成功","data": {"id": 2,"name": "test3","cover_path": "","introduction": "这是一个测试项目","functions": "主要功能是用来测试而已","type_id": 6,"remark": "没有什么好备注的,反正只是测试项目","start_at": null,"end_at": null,"pre_start_at": "2016-10-09 00:00:00","pre_end_at": "2016-12-31 00:00:00","link": "","salary": 1000000,"c_user_id": 2,"email": "2581318149@qq.com","phone": "18219111772","accept_user_id": 0,"status": "1","deleted_at": null,"updated_at": "2016-10-09 21:08:53","created_at": "2016-10-09 14:39:43","applicants": [{"id": 2,"item_id": 2,"user_id": 2,"explain": "吾乃阿里扫地僧,无敌甚是无聊也,故纳之以耗时也。","created_at": "2016-10-10 23:09:59","user": {"id": 2,"t_head": "","t_name": "羊锡添","is_auth": false //是否为认证开发者}},{"id": 3,"item_id": 2,"user_id": 2,"explain": "吾乃阿里扫地僧,无敌甚是无聊也,故纳之以耗时也。","created_at": "2016-10-10 23:10:01","user": {"id": 2,"t_head": "","t_name": "羊锡添"}},{"id": 4,"item_id": 2,"user_id": 2,"explain": "吾乃阿里扫地僧,无敌甚是无聊也,故纳之以耗时也。","created_at": "2016-10-10 23:10:03","user": {"id": 2,"t_head": "","t_name": "羊锡添"}}],"type": {"id": 6,"name": "web开发","logo_path": "upload/img/item_type_logo/Bc92cRnW.jpg","deleted_at": null,"created_at": "2016-10-08 18:17:48"},"documents": []}}
POST
admin/item/{item_id}/passVerify
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目id | Y | |
| cover_path | 项目封面 | Y | formData |
Response
status 200(success)
{"message": "操作成功","data": ["path" : 'xxxx']}
GET
admin/item/{item_id}/failVerify
| 字段 | 描述 | 是否必须 | 备注 |
|---|---|---|---|
| item_id | 项目id | Y |
Response
status 200(success)
{"message": "操作成功"}