16Django-文章模块api文档
链接:https://pan.baidu.com/s/1mSIBzWP6OkvDR3liDV9B9Q
提取码:****
一,概述:
文章发布时博客系统最基本的功能模块,本博客系统主要面向python和linux用户开放注册,所以文章发布分类也只有这两个分类,同时文章的权限分为公开和私有,不愿意共享的文章在发布时可以选择私有。
二,事件定义:
1发布文章:只有在用户登录状态下才可以发布文章
2获取文章列表:文章列表分为python和linux两大类,权限分为公开和私有两大类。
三,开发规范:
1后端环境
Python3.10 + django4.0 + mysql8.0 + centos8
2通信协议
http
3通信格式
Json
API规范:
一定程度上符合RESTful定义
四,数据库结构
字段名 |
类型 |
作用 |
备注1 |
备注2 |
id |
int |
主键自增 |
|
|
title |
Varchar(50) |
文章主题 |
|
|
category |
Varchar(20) |
文章分类 |
1,python 2,linux |
|
limit |
Varchar(10) |
权限 |
1, public公开 2, private私有 |
|
introduce |
Varchar(90) |
文章简介 |
截取文章内容前30个字 |
|
content |
text |
文章内容 |
|
|
create_time |
datetime |
文章创建时间 |
|
|
update_time |
datetime |
文章修改时间 |
|
|
author |
UserProfile用户模型类的外键 |
|
用户与文章是一对多的关系 |
|
五,接口说明:
1发表文章:
URL:http://127.0.0.1:8000/v1/topics/<username>
1.1请求方式:
post
1.2请求格式:
json具体参数如下:
字段 |
含义 |
类型 |
备注 |
title |
文章标题 |
char |
|
category |
文章分类 |
char |
分为两大类python和linux |
limit |
文章访问权限 |
char |
public:公开 private:私有 |
content |
文章内容带html格式 |
char |
|
content_text |
文章内容不带html格式 |
char |
|
请求示例:
{‘title’:’我的第一篇文章’, ’category’:’python’, ‘limit’:’public’, ‘content’:’<p>锄禾日当午汗滴禾下土</P>’, ‘content_text’:’ 锄禾日当午汗滴禾下土’}
该请求需客户端在HTTP heaser里添加token,格式如下:
Authorization : token
1.3响应格式:
json具体参数如下:
字段 |
含义 |
类型 |
备注 |
code |
状态 |
int |
正常为200,异常码件1.4 |
username |
用户名 |
char |
|
响应示例:
{‘code’:200, ‘username’:’linuxTang’}
1.4异常码:
异常码 |
含义 |
备注 |
403 |
用户未登录 |
|
10300 |
文章权限关键字非法 |
|
10301 |
文章分类关键字非法 |
|
异常响应示例:
{‘code’:403, ‘error’:’用户未登录’}
2获取用户文章列表接口:
url:http://127.0.0.1:8000/v1/topics/<username>?category=[python | linux]
2.1请求方式
GET
2.2请求格式:
2.2.1 http://127.0.0.1:8000/v1/topics/<username> 可获取该用户的所有文章
2.2.2 http://127.0.0.1:8000/v1/topics/<username>?category=[python | linux] 可获取该用
户具体分类目录下的所有文章,如分类linux和分类python
2.3响应格式:
json具体参数如下
字段 |
含义 |
类型 |
备注 |
code |
状态 |
int |
200表示成功,异常码见2.4 |
data |
返回的具体数据 |
{ } |
|
topics |
用户文章列表 |
[ ] |
该集合包含{‘id’: topic_id, ‘title’:主题,’category’: 种类【tec|no-tec】, ‘created_time’: 创建时间, ‘introduce’: 简介, ‘author’: 作者昵称} |
响应示例:
{‘code’:200, ‘data’:{‘nickname’:’linuxTang’, ‘topics’:[{‘id’:1, ‘title’:’A’, ‘category’:’python’, ‘created_time’:’2021-12-15 21:07:20’, ‘introduce’:’AAA’, ‘author’:’qq66907360’}]}}
2.4异常码:
异常码 |
含义 |
备注 |
301 |
作者不存在 |
|
异常响应示例:
{‘code’:301, ‘error’:’作者不存在’}
3获取用户具体文章内容接口:
URL:http://127.0.0.1:8000/v1/topics/<username>?t_id=1111
3.1请求方式:
GET
3.2请求格式:
http://127.0.0.1:8000/v1/topics/<username>地址后方添加查询字符串t_id,值为具体文章的id
3.3响应格式
json具体参数如下:
字段 |
含义 |
类型 |
备注 |
code |
状态 |
int |
正常200,异常码见3.4 |
data |
文章数据 |
{ } |
|
响应示例:
{
"code":200.
"data":{
"nickname":"linuxTang",
"title":"跟我学python",
"category":"python",
"create_time":"2021-12-15",
"content":"<p><a href=""">你知道python框架都有哪些吗?</a></P>",
"introduce":"你知道python框架都有哪些吗?",
"author":"linuxTang",
"next_id":2,
"next_title":"你知道django有多牛气吗?",
"last_id":null,
"last_title":null,
"messages":[
{
"id":1,
"content":"<p>文章写的不错但是我有一个疑问</p>"
"publisher":"linuxTang",
"publisher_avatar":"avatar/header1.jpg",
"create_time":"2021-12-12 21:37:01",
"content":"多谢打赏",
"msg_id":2
}
],
"create_time":"2021-12-15 21:38:39"
}
"message_count":2
}
3.4异常码
异常码 |
含义 |
备注 |
302 |
文章不存在 |
提交的查询字符串查不到 |
异常响应示例:
{‘code’:302,’error’:’没有相关文章’}
4删除文章接口:
URL: http:127.0.0.1:8000/v1/topics/<username>?t_id=1111
4.1请求方式:
DELETE
4.2请求格式:
http://127.0.0.1:8000/v1/topics/<username>地址后方添加查询字符串t_id,值为具体的文章id
该请求需客户端在HTTP header里添加token,格式如下:
Authorization: token
4.3响应格式:
json具体参数如下:
字段 |
含义 |
类型 |
备注 |
code |
状态 |
int |
正常为200,异常码见4.4 |
响应示例:
{‘code’:200}
4.4异常码:
异常码 |
含义 |
备注 |
403 |
未登录 |
|
404 |
url中欲删除的用户与登录用户不一致建议清楚本地缓存后重新登录 |
|
405 |
删除的文章不存在,建议清理一下本地缓存 |
|
异常响应码示例:
{‘code’:405,’error’:’ 删除的文章不存在,建议清理一下本地缓存’}
六,常见问题:
注意个别客户端请求需要添加token回传给服务器端,否则异常。