我是靠谱客的博主 忧伤母鸡,最近开发中收集的这篇文章主要介绍Gin框架提供Protobuf作为通信协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//hello.proto
syntax = "proto3";

option go_package = ".;proto";

message Teacher {
  string name = 1;
  repeated string course = 2;
}
// protoc -I . --go_out=. hello.proto --go-grpc_out=. hello.proto
package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
	"testgrpc/gin-grpc/proto"
)


func main() {
	route := gin.Default()
	route.GET("/some",someOne)
	err := route.Run(":9000")
	if err != nil {
		panic(err)
	}
}


func someOne(c *gin.Context) {
	name := c.Query("name")
	list := []string{"test1","test2"}
	user := &proto.Teacher{Name: name,Course: list}
	c.ProtoBuf(http.StatusOK,user)
}
//client.go
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	ginp "testgrpc/gin-grpc/proto"
    "google.golang.org/protobuf/proto"
	)

func main() {

	resp , err := http.Get("http://127.0.0.1:9000/some?name=测试")
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data ,err := ioutil.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}

	user := &ginp.Teacher{}
	err = proto.Unmarshal(data,user)
	if err != nil {
		panic(err)
	}

	fmt.Printf("%#v",*user)

}

在这里插入图片描述

最后

以上就是忧伤母鸡为你收集整理的Gin框架提供Protobuf作为通信协议的全部内容,希望文章能够帮你解决Gin框架提供Protobuf作为通信协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部