当前位置: 首页 > news >正文

营销网站建设实训总结建设工程信息查询哪个网站好

营销网站建设实训总结,建设工程信息查询哪个网站好,广州做网站app,网站挂标 怎么做概述 如果您没有Golang的基础#xff0c;应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730Mo…概述 如果您没有Golang的基础应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730MongoDB快速入门_20240411Go语言MongoDB用户管理系统实战_20240730 基础不好的同学每节课的代码最好配合视频进行阅读和学习如果基础比较扎实则阅读本教程巩固一下相关知识点即可遇到不会的知识点再看视频。 课程特色 本教程录制于2024年7月31日使用Go1.22版本基于Goland2024进行开发采用的技术栈比较新。 每节课控制在十分钟以内课时精简每节课都是一个独立的知识点如果有遗忘完全可以当做字典来查询绝不浪费大家的时间。 整个课程从如何搭建Go语言gRPC环境讲起然后如何创建proto文件如何实现基本的gRPC为辅如何开发增删改查的用户微服务层层递进学习路径平缓。 Golang是当前国内越来越多的企业正在全面转的一门系统级别的高性能的编程语言比C语言写法更加的简单比Python性能更加的好是新时代的C语言建议每个程序员都掌握 视频课程 最近发现越来越多的公司在用Golang了所以精心整理了一套视频教程给大家这个是其中的第10部后续还会有很多。 视频已经录制完成完整目录截图如下 本套课程的特色是每节课都是一个核心知识点每个视频控制在十分钟左右精简不废话拒绝浪费大家的时间。 课程目录 01 概述02 搭建Go语言gRPC微服务开发环境03 下载go-grpc官方的示例代码04 编写简单的proto文件05 根据proto文件自动生成Go代码06 创建grpc的服务端07 创建grpc的客户端08 定义用户微服务的proto文件09 生成用户微服务的go代码10 开发用户微服务服务端基本代码11 开发用户微服务客户端的基本代码12 创建用户表13 连接到MySQL数据库14 实现新增用户的微服务方法并测试15 实现查询所有用户的微服务方法并测试16 实现根据ID查询用户的微服务方法并测试17 实现修改用户的微服务方法并测试18 实现删除用户的微服务方法并测试19 总结 完整代码 04 编写简单的proto文件 syntax proto3;// go项目包的位置 option go_package grpc_demo/helloworld;// 包名 package helloworld;// 服务微服务 service Greeter {// 方法rpc SayHello(HelloRequest) returns (HelloReply) {} }// 请求对象 message HelloRequest{// 参数string name 1; // 1 表示的是参数在第几个位置从1开始 }// 响应对象 message HelloReply{string message 1; }05 根据proto文件自动生成Go代码 protoc --go_out. --go_optpathssource_relative --go-grpc_out. --go-grpc_optpathssource_relative helloworld/helloworld.proto06 创建grpc的服务端 package mainimport (contextfmtgoogle.golang.org/grpcpb grpc_demo/helloworldnet )// 服务对象 type server struct {pb.UnimplementedGreeterServer }// SayHello 实现方法 func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {fmt.Println(接收到的名字是, in.Name)return pb.HelloReply{Message: 你好 in.Name}, nil }func main() {// 创建监听器lis, err : net.Listen(tcp, :8080)if err ! nil {fmt.Printf(failed to listen: %v, err)return}// 构建grpc服务grpcServer : grpc.NewServer()pb.RegisterGreeterServer(grpcServer, server{})// 启动微服务err grpcServer.Serve(lis)if err ! nil {fmt.Printf(failed to serve: %v, err)} } 07 创建grpc的客户端 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/helloworldtime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewGreeterClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()helloReply, err : client.SayHello(ctx, pb.HelloRequest{Name: 李四})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(helloReply.GetMessage())} 08 定义用户微服务的proto文件 syntax proto3;// go项目包的位置 option go_package grpc_demo/c02_user/proto;// 包名 package proto;// 服务微服务 service UserMicroService {rpc Add(AddRequest) returns (CommonReply) {}rpc Delete(IdRequest) returns (CommonReply) {}rpc Update(UpdateRequest) returns (CommonReply) {}rpc GetByID(IdRequest) returns (CommonReply) {}rpc GetAll(EmptyRequest) returns (CommonReply) {} }message AddRequest{string name 1;int64 age 2; } message UpdateRequest{int64 id 1;string name 2;int64 age 3; } message IdRequest{int64 id 1; } message EmptyRequest{ }message CommonReply{bool status 1; // 成功或者失败string message 2; // 详细信息string data 3; // 返回的数据JSON格式 } 12 创建用户表 drop table if exists user; create table user (id int primary key auto_increment,name varchar(36),age int );14 实现新增用户的微服务方法并测试 这里是微服务服务端的完整代码后续的只是客户端测试代码。 服务端代码 package mainimport (contextdatabase/sqlencoding/jsonfmtgithub.com/zhangdapeng520/zdpgo_mcrud_ github.com/zhangdapeng520/zdpgo_mysqlgoogle.golang.org/grpcpb grpc_demo/c02_user/protonetstrconv )var (db *sql.DBerr error )func initMySQL() {dbUrl : root:roottcp(127.0.0.1:3306)/testdb, err sql.Open(mysql, dbUrl)if err ! nil {fmt.Println(err)return} }func closeMySQL() {db.Close() }type User struct {Id int64 json:idName string json:nameAge int json:age }// 服务对象 type server struct {pb.UnimplementedUserMicroServiceServer }func (s *server) Add(ctx context.Context, in *pb.AddRequest) (*pb.CommonReply, error) {fmt.Println(接收到的名字是, in.Name, in.Age)zdpgo_mcrud.Add(db,user,[]string{name, age},[]interface{}{in.Name, in.Age},)result : pb.CommonReply{Status: true,Message: success,}return result, nil }func (s *server) GetAll(ctx context.Context, in *pb.EmptyRequest) (*pb.CommonReply, error) {data, _ : zdpgo_mcrud.GetBy(db,user,[]string{id, name, age},nil,)jsonData, _ : json.Marshal(data)result : pb.CommonReply{Status: true,Message: success,Data: string(jsonData),}return result, nil }func (s *server) GetByID(ctx context.Context, in *pb.IdRequest) (*pb.CommonReply, error) {data, _ : zdpgo_mcrud.GetBy(db,user,[]string{id, name, age},map[string]interface{}{id: in.Id},)jsonData, _ : json.Marshal(data)result : pb.CommonReply{Status: true,Message: success,Data: string(jsonData),}return result, nil }func (s *server) Update(ctx context.Context, in *pb.UpdateRequest) (*pb.CommonReply, error) {zdpgo_mcrud.Update(db,user,strconv.FormatInt(in.Id, 10),[]string{name, age},[]interface{}{in.Name, in.Age},)result : pb.CommonReply{Status: true,Message: success,}return result, nil }func (s *server) Delete(ctx context.Context, in *pb.IdRequest) (*pb.CommonReply, error) {zdpgo_mcrud.Delete(db,user,strconv.FormatInt(in.Id, 10),)result : pb.CommonReply{Status: true,Message: success,}return result, nil }func main() {initMySQL()defer closeMySQL()// 创建监听器lis, err : net.Listen(tcp, :8080)if err ! nil {fmt.Printf(failed to listen: %v, err)return}// 构建grpc服务grpcServer : grpc.NewServer()pb.RegisterUserMicroServiceServer(grpcServer, server{})// 启动微服务err grpcServer.Serve(lis)if err ! nil {fmt.Printf(failed to serve: %v, err)} } 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.Add(ctx, pb.AddRequest{Name: 张三, Age: 23})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage()) } 15 实现查询所有用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.GetAll(ctx, pb.EmptyRequest{})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage())fmt.Println(commonReply.GetData()) } 16 实现根据ID查询用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.GetByID(ctx, pb.IdRequest{Id: 1})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage())fmt.Println(commonReply.GetData()) } 17 实现修改用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.Update(ctx, pb.UpdateRequest{Id: 1,Name: 李四333,Age: 24,})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage()) } 18 实现删除用户的微服务方法并测试 服务端代码看地14节课的。 客户端代码 package mainimport (contextfmtgoogle.golang.org/grpcgoogle.golang.org/grpc/credentials/insecurepb grpc_demo/c02_user/prototime )func main() {// 创建客户端conn, err : grpc.NewClient(localhost:8080, grpc.WithTransportCredentials(insecure.NewCredentials()))if err ! nil {fmt.Println(err)return}defer conn.Close()// 创建指定微服务的客户端client : pb.NewUserMicroServiceClient(conn)// 调用微服务的方法ctx, cancelFunc : context.WithTimeout(context.Background(), 5*time.Second)defer cancelFunc()commonReply, err : client.Delete(ctx, pb.IdRequest{Id: 1})if err ! nil {fmt.Println(err)return}// 处理响应fmt.Println(commonReply.GetStatus())fmt.Println(commonReply.GetMessage()) } 总结 整个课程从如何搭建Go语言gRPC环境讲起然后如何创建proto文件如何实现基本的gRPC为辅如何开发增删改查的用户微服务层层递进学习路径平缓。 通过本套课程能帮你入门Go语言通过gRPC开发微服务项目的技术。 如果您需要完整的源码打赏20元即可。 人生苦短我用PyGo我是您身边的Python私教~
http://www.w-s-a.com/news/867506/

相关文章:

  • 很多年前的51网站如何做跨境电商需要哪些条件
  • 网站建设中 请稍后访问互联网营销设计
  • 软文网站名称用户浏览网站的方式
  • 大兴模版网站搭建哪家好网站建设与管理管理课程
  • 四川成都网站制作微信广告平台推广
  • 网站价格网页制作网站开发实训步骤
  • cms 导航网站鹤壁做网站价格
  • 微信营销软件免费版郑州关键词优化费用
  • 邢台专业做网站哪家好临沂网站建设中企动力
  • 建设网站是主营成本吗wordpress 后台
  • 猎头可以做单的网站企业网站建设
  • 建小程序需要网站吗在putty上怎样安装wordpress
  • 天津智能网站建设找哪家WordPress相册插件pro
  • 电脑网站页面怎么调大小济宁网站建设软件开发
  • 亿玛酷网站建设广州增城区最新消息
  • 企业网站视频栏目建设方案中企动力网站模板
  • 网站页面策划国外注册域名的网站
  • 百中搜如何做网站排名网站维护一年一般多少钱
  • 镇江地区做网站的公司wordpress说说加分类
  • 深圳高端网站设计免费的关键词优化软件
  • 视频网站公司沈阳网站建设服务
  • 网站全屏代码做网站必须用对方服务器
  • 网站速度慢wordpressssl正式申请后wordpress
  • 那个网站做玉石最专业西瓜创客少儿编程加盟
  • 备案时的网站建设方案书免费软件库
  • 惠州外贸网站建设网站模板 兼容ie8
  • 南京淄博网站建设方案php网站开发实训感想
  • 网站设计的含义只做恐怖片的网站
  • 网站改版方案ppt室内装修公司简介
  • 做色网站wordpress twenty ten