Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
fengjie Lu
Pastebin_backend
Commits
aa2e251a
Commit
aa2e251a
authored
Dec 13, 2022
by
fengjie Lu
Browse files
backend_with_readme
parent
d1058854
Pipeline
#45
failed with stages
in 0 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Readme.md
0 → 100644
View file @
aa2e251a
## 1.语言及框架
**Golang echo**
## 2.数据库
**MySQL**
数据组织方式:两个table
**(1)LIST**
```
JSON
LIST{
"Id":"int"
"Name":"String"//随机生成 并后续用来索引
"Password":"String"//访问密码
"Type":"bool" //false 文本型 存放在Txt键值对中
//true 文件型 指针存放在 File键值对中
"Txt":"String"//存放文本型数据
"File":"MediumBlob"// 存放文件型数据
"ClickTimes":"int"//剩余可以点击的次数
"RemainTime":"int"//剩余可被访问的时间 (sec)
"Starttime": "int64"//传入数据的时间
}
```
(2)SESSION
```
JSON
SESSION{
"Id" : "int"
"Cookie": "string" //获取到的cookie值(访问鉴权页面的cookie)
"Time" : "int" //留存时间
"Starttime": "int64"//传入数据的时间
}
```
## 3.项目结构
### (1)submit请求
则在存放数据的LIST表中新增一条数据
### (2)query请求
为方便与前端交互,分为三种情况进行处理,详见API_LIST
**核心**
是根据
**Name****或****Cookie**
查表,然后返回鉴权结果或判断结果,或者是返回内容:文本则用文本形式返回,文件则用文件形式返回
## 4.API_LIST
## 一、提交
### 1.提交文本
```
JSON
{host}/submit/text
[POST]
Content-Type:[留空]
[params]
Form-data
body:
{
"Expiration":"int",//过期时间(sec)
"Password":"string",//密码
"ClickTimes":"int"//访问次数
"RemainTime":"int"//剩余访问时间
"Text":"string"//文本内容
}
[response]
{
"WebCode":"string"//随机生成的路由(route) 比如SqMs
//对应的网址需自行加上www.host<route>.com
}
[ERROR_CODE]
{
"200":"运转正常"
"400":"存在异常"
}
```
示例:

### 2.提交文件
```
JSON
{host}/submit/file
[POST]
Content-Type:[留空]
[params]
Form-data
body:
{
"Expiration":"int",//过期时间(sec)
"Password":"string",//密码
"ClickTimes":"int"//访问次数
"RemainTime":"int"//剩余访问时间
"File":"file"//文件
}
[response]
{
"WebCode":"string"//随机生成的路由(route) 比如SqMs
//对应的网址需自行加上www.host<route>.com
}
[ERROR_CODE]
{
"200":"运转正常"
"400":"存在异常"
}
```
示例

## 二、查询
### 1.鉴权
```
JSON
{host}/query/session
[POST]
Content-Type:[留空]
[params]
Form-data
body:
{
"Name":"string",//网站的索引名——提交时随机生成的那个字符串
"Cookie":"string"//用于检验是否已有session
}
[response]
{
"Status":"bool"//用于反映查询状态
//code == true 直接展示
//code == false 需要输入密码
}
[ERROR_CODE]
{
"200":"运转正常"
"400":"查询的链接不存在"
}
```
1.
当前不存在session

2.
当前存在session
和1的请求一模一样,但是返回不一样的原因是,我把密码验证做了一下,于是Session表中有了这个cookie,所以这次请求后的结果为true

### 2.密码验证
```
JSON
{host}/query/check
[POST]
Content-Type:[留空]
[params]
Form-data
body:
{
"Name":"string",//网站的索引名——提交时随机生成的那个字符串
"Password":"string"//传入密码
"Cookie":"string"//用于添加一个session
}
[response]
{
"Status":"bool"//用于反映查询状态
//Code == false 错误
//Code == true 正确——可以展示内容
}
[ERROR_CODE]
{
"200":"运转正常"
"400":"链接超时无法访问或者次数超限"
}
```
1.
输入的密码错误

2.
输入的密码正确

### 3.查询内容
```
JSON
{host}/query/content
[POST]
Content-Type:[留空]
[params]
Form-data
body:
{
"Name":"string",//网站的索引名——提交时随机生成的那个字符串
}
[response]
{
"Type":"bool"//用于反映内容类型 false文本型 true文件类型
"Content":"string or bytes"//取决于type的值
}
[ERROR_CODE]
{
"200":"运转正常"
"400":"查询的链接不存在"
}
```
1.
查询文本正常

2.
查询文本失败(没有这个链接)

3.
查询文件成功
(失败略 与2类似)

\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment