demo设想
我们想完成一个“留言小demo”,证明我们的"web框架"还是能够完成某种工作的, 该工具主要有3个方法,分别为 新增数据、查询全部记录、查询某条记录。
接口文档
数据存放
数据直接放置在程序内存中即可
新增数据
请求标题 | 参数值 |
请求方式 | POST |
请求地址 | /addIndex |
上传参数 | title 标题 node 记录 |
响应数据:成功 | 状态码: 200 文本: ${title} 已经提交成功! |
响应数据:失败 | 状态码: 400 文本: 上传数据有误 |
查询全部记录
请求标题 | 参数值 |
请求方式 | GET |
请求地址 | /queryAll |
上传参数 | 无 |
响应数据:成功 | 状态码: 200 文本: 查询到的JSON 数组数据 |
响应数据:失败 | 状态码: 500 文本: 服务器出错! |
搜索查询记录
请求标题 | 参数值 |
请求方式 | GET |
请求地址 | /queryOne |
上传参数 | key 查询的参数 |
响应数据:成功 | 状态码: 200 文本: 查询到的JSON 数组数据 |
响应数据:失败 | 状态码: 500 文本: 服务器出错! |
响应数据:失败 | 状态码: 400 文本: 上传数据有误! |
编码
数据存放
我们可以定义一个结构体,用于存放该数据,且在全局定义该类型数据。
路由定义
我们如上在接口文档中,已经设计了3个方法,分别为 新增数据、查询全部记录、查询某条记录。我们定义路由信息如下:
如上代码我们定义了3种路由,除了/addIndex
为POST
请求外,其他2个都是GET
请求。而后,我们仅需完善后面三个函数即可。
新增记录
如上代码我们从客户端获取title
和node
的数据,若数据获取失败,则返回客户端 上传数据有误 ,若都接收到数据,则我们申请一个IndexNode
,来存放该数据,最后将该数据加到留言组中去。
查询全部数据
这个较为简单,我们仅需将IndexNodes
给序列化后,直接返回客户端即可,若josn
序列化失败,则返回给客户端: "服务器出错"
搜索查询记录
如上代码,我们从客户端获取key
,若获取失败,则向客户端返回 上传数据有误, 而后我们定义一个新的IndexNode
数组类型用以存放我们搜索到的数据。
在搜索中,我们先搜搜标题数据,而后搜索内容,当包含key
,我们则加如数组中,最后序列化为json
数据,返回给客户端,若序列化失败,则返回 “服务器出错”
\
测试
我们测试使用curl
工具,加linux json
软件jq
新增数据
本次测试,我们准备了几条记录,分别为:
title=每日必记&node=记得上下班打卡 title=每日必做&node=每小时必须喝一杯300ml水 title=临时任务&node=博客编写
我们使用curl
添加命令如下
curl -s -X POST -d "title=每日必记&node=记得上下班打卡" 127.0.0.1:8082/addIndex curl -s -X POST -d "title=每日必做&node=每小时必须喝一杯300ml水" 127.0.0.1:8082/addIndex curl -s -X POST -d "title=临时任务&node=博客编写" 127.0.0.1:8082/addIndex
查询全部数据
我们使用curl
访问/queryAll
获取全部数据,而后使用jq
初始化一下。
命令:
curl -s 127.0.0.1:8082/queryAll | jq
搜索查询记录
我们将上传每日
作为关键字,查询记录。
命令:
curl -s '127.0.0.1:8082/queryOne?key=每日' | jq
总结
代码上传到: gitee.com/pdudo/golea… , 在本篇中,我们已经看了如何使用我们自己写的“web框架”来编写一个简单的demo
,怎么样,我们自定义的“web”框架还可以吧,快来试试吧。