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回传给服务器端,否则异常。

posted @ 2021-12-15 22:04  linuxTang  阅读(57)  评论(0)    收藏  举报