《用Gin框架构建分布式应用》学习第4天,p32-p76总结,总计25页。

一、技术总结

1.Go知识点

(1)iouti

书上使用ioutil包读取JSON文件,但是从go 1.16 开始,不再推荐使用ioutil,应该使用os 包。

(2)json.Unmarshal() vs json.NewDecoder()

当数据已经被加载到内存中了(例如一个string,slice),那么使用json.Unmarshal();如果是读取文件,那么使用json.NewDecoder。

2.go-swagger

使用 go-swagger包生成API文档流程:

(1)安装

go install github.com/go-swagger/go-swagger/cmd/swagger@latest

(2)给函数添加swagger

/ swagger:route GET /recipes  listRecipes
// Returns list of recipes
// ---
// produces:
// - application/json
// responses:
// '200':
// description: Successful operation
// ListRecipesHandler 差下recipes,因为是查询所有,所以名称这里用的是复数
func ListRecipesHandler(c *gin.Context) {
c.JSON(http.StatusOK, recipes)
}

(3)生成文档

swagger generate spec -o ./swagger.json

注:每次给函数添加注释后都需要执行该命令,否则API文档不会更新。

(4)启动API服务

 swagger serve --no-open -F swager ./swagger.json

注:因为本人使用的是WSL,所以需要添加--no-open,否则报webbrowser: can't open browser错误,服务无法启动。

UI有两种风格:Redoc和 Swagger UI。上没“-F swagger”指定了UI风格为Swagger UI。

注:个人觉得书上这种方式比较麻烦且繁琐,同时大量的注释导致代码非常不简洁。

二、英语总结

无,第二章除了食物名,整体来说生词比较少。

三、其它

无。

四、参考资料

1. 编程

(1) Mohamed Labouardy,《Building Distributed Applications in Gin》:https://book.douban.com/subject/35610349

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

《使用Gin框架构建分布式应用》阅读笔记:p52-p76的更多相关文章

  1. CI框架源码阅读笔记5 基准测试 BenchMark.php

    上一篇博客(CI框架源码阅读笔记4 引导文件CodeIgniter.php)中,我们已经看到:CI中核心流程的核心功能都是由不同的组件来完成的.这些组件类似于一个一个单独的模块,不同的模块完成不同的功 ...

  2. CI框架源码阅读笔记4 引导文件CodeIgniter.php

    到了这里,终于进入CI框架的核心了.既然是“引导”文件,那么就是对用户的请求.参数等做相应的导向,让用户请求和数据流按照正确的线路各就各位.例如,用户的请求url: http://you.host.c ...

  3. CI框架源码阅读笔记3 全局函数Common.php

    从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...

  4. CI框架源码阅读笔记2 一切的入口 index.php

    上一节(CI框架源码阅读笔记1 - 环境准备.基本术语和框架流程)中,我们提到了CI框架的基本流程,这里再次贴出流程图,以备参考: 作为CI框架的入口文件,源码阅读,自然由此开始.在源码阅读的过程中, ...

  5. CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程

    最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...

  6. CI框架源码阅读笔记9 CI的自动加载机制autoload

    本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI的autoload的基本流程.因此,可以看做是Loader组件的分析前篇. CI框架中,允许你配置autoload数组,这样,在你的应用程序 ...

  7. CI框架源码阅读笔记8 控制器Controller.php

    最近时间有些紧,源码阅读系列更新有些慢.鉴于Controller中代码比较少,本次Blog先更新该文件的源码分析. 在经过路由分发之后,实际的应用Controller接管用户的所有请求,并负责与用户数 ...

  8. CI框架源码阅读笔记6 扩展钩子 Hook.php

    CI框架允许你在不修改系统核心代码的基础上添加或者更改系统的核心功能(如重写缓存.输出等).例如,在系统开启hook的条件下(config.php中$config['enable_hooks'] = ...

  9. ****CI框架源码阅读笔记7 配置管理组件 Config.php

    http://blog.csdn.net/ohmygirl/article/details/41041597 一个灵活可控的应用程序中,必然会存在大量的可控参数(我们称为配置),例如在CI的主配置文件 ...

  10. CI框架源代码阅读笔记5 基准測试 BenchMark.php

    上一篇博客(CI框架源代码阅读笔记4 引导文件CodeIgniter.php)中.我们已经看到:CI中核心流程的核心功能都是由不同的组件来完毕的.这些组件类似于一个一个单独的模块,不同的模块完毕不同的 ...

随机推荐

  1. 【Layui】08 时间线 Timeline

    文档地址: https://www.layui.com/demo/timeline.html 常规时间线: <ul class="layui-timeline"> &l ...

  2. mujoco安装报错:mujoco_py/gl/eglplatform.h:99:10: fatal error: X11/Xlib.h: 没有那个文件或目录

    安装mujoco报错: mujoco_py/gl/eglplatform.h:99:10: fatal error: X11/Xlib.h: 没有那个文件或目录 修复方法: sudo apt inst ...

  3. 惠普暗影精灵2pro挑电池和电源适配器

    自己几年前买的暗影2pro前几个月坏掉了,无法充电,而且偶发性掉电,经过长时间研究发现该款电脑存在挑电池和电源适配器的问题. 相关资料: https://www.chinafix.com/thread ...

  4. Apache DolphinScheduler使用图关系解决核心链路告警问题,减轻任务运维负担!

    转载自程序员小陶 Apache DolphinScheduler 在使用过程中,肯定会有任务出现失败的情况,那么问题来了:调度任务的告警是需要人为配置的,在生产环境中,面对海量的任务,如何找到重要的任 ...

  5. 代码随想录Day9

    KMP算法 主要用来进行字符串匹配 KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了. 所以如何记录已经匹配的文本内容,是KMP的重点 ...

  6. 38k Star!颠覆传统BI,Metabase新一代智能数据分析工具

    Metabase 是一个开源的商业智能(BI)工具,帮助用户轻松地从数据库中提取数据,并将其转化为易于理解的图表和仪表板.与传统的 BI 工具相比,Metabase 不需要用户具备编写 SQL 的能力 ...

  7. 流体饱和多孔介质的本构关系 + Föppl-von Kármán 方程

    向有液体的多孔介质上施加应力,应力一部分分布到骨架上,一部分分布到孔隙流体上.骨架上的应力会导致变形,所以被称为 "有效应力".这里考虑拉伸应力为正,有效应力原理写为 \[\sig ...

  8. Elsa V3学习之脚本

    在前面的文章中,可以看到我们经常使用JS脚本来获取变量的值.在Elsa中是支持多种脚本的,最常用的基本是JS脚本和C#脚本. 本文来介绍以下这两个脚本使用. Javascript 在ELSA中的jav ...

  9. CentOS 进入救援模式

    因某些修改操作,导致系统重启后无法正常启动,此时需要进入救援模式,修复错误配置即可. 1.重启系统后,进入grup引导页面,选中第一项然后按"e" 进入编辑模式: 2.通过↓键找到 ...

  10. C#反射在数据库连接时的应用

    反射的应用 1.查找指定ID的数据 //查找指定id的数据,返回指定的对象 private T FindData<T>(int id) { Type ty = typeof(T); //在 ...