2Django-用户模块API文档

链接:https://pan.baidu.com/s/1qiR6J-lL54s6DcH5XjaLmg
提取码:****

一, 概述:

想用目前最新版的python3.10+django4.0做一个前后端分离的博客,目的有2点,第一是学习,第二是部署到自己的服务器上用于记录it相关知识的笔记

二, 事件定义:

1注册:新用户通过此功能可以注册,注册成功并且被审核通过的用户剋在自己的博客中发表自己的文章以及回复文章留言

2登录:用户可通过用户名密码进行登录,只有登录的用户才能使用后台功能

3修改个人信息:每个登录用户都可以编辑自己的个人描述,签名头像昵称等

三, 开发规范:

1后端环境:

Python3.10 + django4.0 + mysql8.0 + centos8

2通信协议:

http

3通信格式:

Json

4,API规范:

一定程度上符合RESTful定义

四, 数据库结构

字段名

类型

作用

备注1

备注2

username

varchar(11)

用户名

注册时填写

主键

nickname

varchar(30)

昵称

在博客中显示的名字(可修改)

email

varchar(254)

邮箱

预留

password

varchar(32)

密码

用户登录密码

phone

varchar(11)

手机号

avatar

varchar(100)

用户头像

sign

varchar(50)

用户签名

设个默认随机值

info

varchar(150)

个人简介

is_active
tinyint

是否为有效用户

默认注册为False

create_time

datetime

创建时间

updated_time

datetime

更新时间

五, 接口说明:

1注册接口

url:http://127.0.0.1:8000/v1/users

1.1请求方式:

POST

1.2请求格式

Json

具体参数如下:

字段

含义

类型

备注

username

用户名

CharField

必填

email

邮箱

EmailField

必填

password1

密码

CharField

必填

Password2

密码

CharField

必填

请求示例:

{‘username’: linuxTang, ‘email’: ‘66907360@qq.com’, ‘password1’: ‘123456’, ‘password2’: ‘123456’}

1.3响应格式:

json具体参数如下:

字段

含义

类型

备注

code

状态

int

默认正常时200,异常建1.4

username

用户名

char

data

返回的数据对象

{ }

{

token:xxx 此为会话保持的令牌-char

}

 

响应示例:

{‘code’: 200, ‘username’: ‘linuxTang’, ‘data’: {‘token’: ‘abcdefghigklmnopqrst’}}

1.4异常码

异常码

含义

备注

202

请求中无内容

 

203

请求中未提交用户名

 

204

请求中未提交邮箱

 

205

请求中未提交密码

 

206

两次提交密码不一致

即password1 != password2

207

用户名已存在

 

500

服务器异常

 

异常响应示例:

{‘code’:203, ‘error’:u’请输入用户名’}

2获取用户数据接口:

URL: http://127.0.0.1:8000/v1/users/<username>

2.1请求方式:

GET

2.2请求格式:

2.2.1   直接GET请求,可获取全量数据

2.2.2   GET请求后添加查询字符串,可根据字符串具体查询,例如

查询:http://127.0.0.1:8000/v1/users/<username>?nickname=1

2.3响应格式:

Json具体参数如下:

字段

含义

类型

备注

code

状态

int

请求成功返200,异常码见2.4

username

用户名

char

 

data

响应的数据

{ }

{‘info’:个人描述-char, ‘sign’:个人签名-char, ‘nickname’:昵称-char, ‘avatar’:头像地址-char}

响应示例:

全量响应:

{‘凑得’:200, ‘username’:’linuxTang’,’data’:{‘nickname’:’tyj’,’sign’:’持续学习’,’avatar’:’header.jpg’,‘info’:’大河东区浪淘尽,数不尽的风云人物!’}}

 

局部响应:

{‘code’:200,’username’:’linuxTang’,’data’:{‘nickname’:’tyj’}}

2.4异常码:

异常码

含义

备注

208

用户名不存在

 

3修改个人信息接口:

URL: http://127.0.0.1:8000/v1/users/<username>

3.1请求方式:

PUT

3.2请求格式:

Json具体参数如下:

字段

含义

类型

备注

sign

个人签名

char

非必填

info

个人描述

char

非必填

nickname

昵称

char

非必填

该请求需要客户端在HTTP header里添加token,格式如下:

Authorization: token

请求示例:{‘sign’:xxx, ‘info’:xxx, ‘nicknaame’:xxx}

3.3响应格式:

Json具体参数如下:

字段

含义

类型

备注

code

状态

Int

正常为200,异常见3.4

username

用户名

char

此次请求的用户名

响应示例:{‘code’:200, ‘username’:’linuxTang’}

3.4异常码:

异常码

含义

备注

202

空提交

请求中无任何信息

异常响应示例:{‘code’:202, ‘error’:’please put data’}

上传头像接口

URL:http://127.0.0.11:8000/v1/users/<username>/avatar

4.1请求方式

POST multipart/form-data

4.2请求格式

具体参数如下:

字段

含义

类型

备注

avatar

用户头像

char

必填

该请求需要客户端在HTTP header里添加token,格式如下:

Authorization:token

4.3响应格式:

Json参数如下:

字段

含义

类型

备注

code

状态

Int

正常为200

username

用户名

char

此次修改的用户名

5获取token

登录请求:http://127.0.0.1:8000/v1/tokens

5.1请求方式:

POST

5.2请求格式:

Json具体参数如下:

字段

含义

类型

备注

username

用户名

char

必填

password

密码

char

必填

请求示例:{‘username’:’xxx’, ‘password’:’yyy’}

5.3响应格式:

Json参数如下:

字段

含义

类型

备注

code

200

int

正常200,异常码见5.4

Data

响应的数据

{ }

{‘token’:’fddfffff’}

 

 

 

 

5.4异常码:

异常码

含义

备注

201

请求方式并非post

 

201

请求为空

 

203

请求中未提交用户名

 

205

请求中未提交密码

 

208

用户名不存在

 

209

提交的密码不正确

 

异常码响应示例

{‘code’:205, ‘error’:’no password’}

六常见问题:

1注意个别客户端请求需要添加token传回到服务器,否则可能会出现异常

posted @ 2021-12-11 12:07  linuxTang  阅读(104)  评论(0)    收藏  举报