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

福州网站建设哪家专业wordpress 开源吗

福州网站建设哪家专业,wordpress 开源吗,wordpress免费企业,营销网站建站企业概述 如果您没有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.hkea.cn/news/14474885/

相关文章:

  • 做影视网站能赚到钱吗沭阳住房和城乡建设局网站
  • 免注册制作网站企业公示信息查询系统辽宁
  • 做体育直播网站网站上传文件不存在
  • 小型网站建设需要多少钱乌克兰网站服务器
  • 南宁网站建设推广服务网站后端开发软件
  • 自己免费做网站全网推广平台哪家好
  • 宣武郑州阳网站建设工程建设期刊网站
  • 西安博威建设工程有限公司招聘网站深圳住房建设局网站首页
  • 网站建站平台排行榜263企业邮箱入口登录官网
  • php 免费网站空间申请网页宣传广告怎么做
  • 做二维码报名网站贵州省住房与城乡建设厅网站
  • 京广桥做网站的公司企业建站多站点管理系统
  • 精通网站建设 全能建站密码pdf评价一个网站
  • 怎么做淘宝客网站推广大学英文网站建设
  • 建网站能上传多少数据合肥公司网站设计
  • 网站开发需要学什么语言在线设计签名免费艺术签名
  • 深圳网站上线方案室内设计联盟官方网站图片
  • 网站系统性能定义wordpress搭建镜像
  • 个网站能申请贝宝支付接口网站建设步骤与时间表
  • 做网站实训目的和意义网站建设维护文档
  • 写作的网站哪个好专业的企业宣传片制作企业
  • 建设工程交易网站服务器如何建设多个网站
  • 山西省城乡住房建设厅网站首页如何开网上商城
  • 省市网站建设考核标准要求深圳网站建设公司哪家好
  • 网站建设背景图深圳怎么制作公司网页
  • app开发商城谷歌seo推广招聘
  • 建设部指定发布招标信息网站seo云优化软件破解版
  • 大连公共资源交易平台章丘市网站建设seo
  • wordpress快速建站90设计下载后怎么用
  • 门户网站开发项目的风险自己做报名网站教程