Go 框架三件套详解(Web/RPC/ORM)

简介: Go 框架三件套详解(Web/RPC/ORM)

Gorm

  • Gorm中struct无法更新零值,会自动忽略,如果想更新零值可以使用map或者select

Kitex

定义IDL

如果我们要进行RPC,就需要知道对方的接口是什么,需要传
什么参数,同时需要知道返回值是什么样的。这时候,就需要
通过IDL来约定双方的协议,就像在写代码的时候需要调用某个函数,我们需要知道函数签名一样。

image.png

Kitex生成代码

  • 使用kitex -module example -service example echo.thrift命令生成代码

桩代码结构

image.png

build.sh :构建脚本
kitex gen :IDL内容相关的生成代码,主要是基础的Server/Client代码。
main.go程序入口
handler.go用户在该文件里实现IDL service定义的方法

Kitex基本使用

package main
import (
"context
"example/kitex_gen/api"
}
// EchoImpl implements the last service interface defined in the IDL.

type EchoImpl struct{}

// Echo implements the EchoImpl interface.
func (s *EchoImpl) Echo(ctx context.Context,req *api.Request)(resp *api.Response,err error){
    // TOD0: Your code here. . .   
return
}
  • Client 发起请求

image.png

Hertz基本使用

  • Hertz提供了GET、POST、PUT、DELETE、ANY 等方法用于注册路由。
  • Hertz提供了参数路由和通配路由,路由的优先级为:静态路由>命名路由>通配路由
    899
  • Hertz提供了Bind、Validate、BindAndValidate 函数用于进行参数绑定和校验
  • Hertz的中间件主要分为客户端中间件与服务端中间件,如下展示一个服务端中间件。
  • Hertz提供了代码生成工具Hz,通过定义IDL(inteface description language )文件即可生成对应的基础服务代码。

Hertz性能

  • 网络库Netpoll
  • Json编解码Sonic
  • 使用sync.Pool复用对象协议层数据解析优化

Hertz生态

image.png

相关文章
|
2月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
224 4
|
5月前
|
人工智能 测试技术 Go
Go 语言的主流框架
本文全面解析了 Go 语言主流技术生态,涵盖 Web 框架、微服务、数据库工具、测试与部署等多个领域。重点介绍了 Gin、Echo、Beego 等高性能框架,以及 gRPC-Go、Go-Micro 等微服务组件。同时分析了 GORM、Ent 等 ORM 工具与测试部署方案,并结合场景提供选型建议,助力开发者构建高效稳定的 Go 应用。
1178 0
|
3月前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
283 86
|
2月前
|
JavaScript 前端开发 Java
【GoWails】Go做桌面应用开发?本篇文章带你上手Wails框架!一步步带你玩明白前后端双端的数据绑定!
wails是一个可以让你使用Go和Web技术编写桌面应用的项目 可以将它看作Go的快并且轻量级的Electron替代品。可以使用Go的功能,并结合现代化UI完成桌面应用程序的开发
426 4
|
2月前
|
开发框架 前端开发 Go
【GoGin】(0)基于Go的WEB开发框架,GO Gin是什么?怎么启动?本文给你答案
Gin:Go语言编写的Web框架,以更好的性能实现类似Martini框架的APInet/http、Beego:开源的高性能Go语言Web框架、Iris:最快的Go语言Web框架,完备的MVC支持。
350 1
|
6月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
SQL Java 数据库连接
javaer to go之简单的ORM封装
身为一个做企业级开发的javaer,习惯使用hibernate、ibatis等ORM框架来操作数据库。虽然也发现golang也有ORM框架,像beego ORM等。 为了熟悉golang的一些特性,我还是觉得自己封装一个ORM。 <h1 id="1struct与interface
3625 0
|
2月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
161 1
|
4月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
287 1
|
4月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
371 0

热门文章

最新文章