超级详细:Go语言框架Gin和Gorm实现一个完整的待办事项微服务( 三 )
然后获取所有的条目
curl -s -X GET http://localhost:9089/api/v1/todo/ 结果JSON数组格式化输出如下:
文章插图
测试获取单条数据 , 这里使用id=10这一条 , 执行如下指令
curl -s -X GET http://localhost:9089/api/v1/todo/10 返回结果如下:
{"data":{"id":10,"title":"Zen of Golang.","completed":false},"message":"ok","status":1}测试修改该条数据 , 设置completed=1 , 为已完成状态 。
curl -s -X PUT -d "title=Zen of Golang." -d "completed=1" http://localhost:9089/api/v1/todo/10 执行成功返回:
注意更新操作使用的method = PUT 。 会命中第4条路由规则 。
下面删除id=10的条目 , 使用以下指令:
curl -s -X DELETE http://localhost:9089/api/v1/todo/10 执行成功后返回结果:
{"message":"删除成功!","status":1}OK , 上面所有的路由都已经测试完毕 , 看服务器端的访问历史 , 大致如下图:
文章插图
注意到有一条是数据库连接的自动释放 , 这是由MySQL设置的连接超时时间决定的 , 超期闲置则释放 。 如果有新的连接请求 , 重新建立 。 这可以节约资源 。
关键点总结在测试上述功能的时候 , 列出一些初学者可能会犯的错 。
1 - 数据库连接失败
一定要确保连接字符串书写正确 , 账号密码书写正确 , 数据库IP地址和端口号正确 , 还有数据库名称对应 。 如果始终不能连接成长 , 可以尝试单独拿出来数据库连接进行测试 , 直到通过 。
2 - 路由地址
根据设定的路由规则 , 正确地书写路由地址 , 还有传送参数方法 , 这样才能在程序中获取到提交的数据 。
比如使用POST , 传送的表单数据使用 c.PostForm 可以获取到 。 而 c.Param 则用于获取路由中 “/:id” id 这个位置参数 。
3 - curl测试工具使用
注意使用请求方式 -X 参数 , 还有POST中使用的 -d 参数选项 。
结语以上内容使用两个成熟的包 , 快速地创建了一个待办清单的微服务 。 可以看到Go语言生态日臻完善 , 优秀的框架频出 , 给开发带来了很高的效率 。
另外 , GO语言的易于书写特性 , 接近与脚本语言的表达力 , 还有严格的数据类型检测 , 将不少低级的错误排除在编译阶段 。
Happy coding :-)
【本文由 @程序员小助手 发布 , 持续分享编程与程序员成长相关的内容 , 欢迎关注】
- 启动|饿了么宣布启动“1212超级粉丝狂欢节”联合34家品牌推吃货卡季卡
- 设计语言|全新家族设计,三星Galaxy A32渲染图曝光
- 超级|特斯拉获准在柏林超级工厂所在地开始第二阶段的森林砍伐
- 产品|墨案Inkpad X超级阅读器:10英寸大屏,同品类号称无敌
- 狂欢节|饿了么启动“1212超级粉丝狂欢节”
- 超级快充|从3899到2629元,荣耀顶级旗舰二手价,麒麟990+40W快充!
- 你知道号称飞行铁路的超级高铁吗?时速堪比民航客机西瓜视频解密
- 曝光|微软新专利曝光 可以与会者面部表情和肢体语言为会议打分
- 学习C语言的软件,就突然被我绿了?
- 快速概览 + 详细了解N:N聚类算法是如何应用的
