Go项目学习一 | 青训营

97 阅读2分钟

项目设计:以博客设计为例

1、设置数据库: 创建数据表、关联表,可以直接在dbeaver中创建。

`created_on` int(10) unsigned DEFAULT '0' COMMENT '创建时间',
  `created_by` varchar(100) DEFAULT '' COMMENT '创建人',
  `modified_on` int(10) unsigned DEFAULT '0' COMMENT '修改时间',
  `modified_by` varchar(100) DEFAULT '' COMMENT '修改人',
  `deleted_on` int(10) unsigned DEFAULT '0' COMMENT '删除时间',
  `is_del` tinyint(3) unsigned DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
  

公共部分可以单独列出来备用。

2、编写model代码 分别创建 tag.go\article.go文件。编写相关代码。

3、编写路由 对业务模块的管理接口进行设计,而在这一块最核心的就是增删改查的 RESTful API 设计和编写,在 RESTful API 中 HTTP 方法对应的行为动作分别如下:

GET:读取/检索动作。

POST:新增/新建动作。

PUT:更新动作,用于更新一个完整的资源,要求为幂等。

PATCH:更新动作,用于更新某一个资源的一个组成部分,也就是只需要更新该资源的某一项,就应该使用 PATCH 而不是 PUT,可以不幂等。

DELETE:删除动作。

4、启动测试

func main() {
	router := routers.NewRouter()
	s := &http.Server{
		Addr:           ":8080",
		Handler:        router,
		ReadTimeout:    10 * time.Second,
		WriteTimeout:   10 * time.Second,
		MaxHeaderBytes: 1 << 20,
	}
	s.ListenAndServe()
}

通过自定义 http.Server,设置了监听的 TCP Endpoint、处理的程序、允许读取/写入的最大时间、请求头的最大字节数等基础参数,最后调用ListenAndServe方法开始监听。

到这里,完成了一个项目最初始的第一步,也就是项目的标准目录创建、数据库设计、数据模型编写、接口方法的设计和接口处理方法及启动接入。

附录:有关gin框架的知识补充:

1、Go语言内置了 net/http库,封装了HTTP网络编程的基础的接口;

2、对Web服务来说,无非是根据请求*http.Request,构造响应http.ResponseWriter。但是这两个对象提供的接口粒度太细,比如我们要构造一个完整的响应,需要考虑消息头(Header)和消息体(Body),而 Header 包含了状态码(StatusCode),消息类型(ContentType)等几乎每次请求都需要设置的信息。因此,如果不进行有效的封装,那么框架的用户将需要写大量重复,繁杂的代码,而且容易出错。针对常用场景,能够高效地构造出 HTTP 响应是一个好的框架必须考虑的点——GIN框架;