gRPC 的增删改查系列之客户端

1.路径\src\client\main.go
2.客户端调用服务端增删改查接口:

package main

import (
    "context"
    "flag"
    "github.com/golang/protobuf/ptypes"
    v1 "goWebGin/api/proto/v1"
    "google.golang.org/grpc"
    "log"
    "time"
)

const (
    apiVersion = "v1"
)

func main() {
    address := flag.String("server", "", "gRPC server in format host:port")
    flag.Parse()
    conn, err := grpc.Dial(*address, grpc.WithInsecure())
    if err != nil {
        log.Fatal("服务器,连接不上:%s", err)
    }
    defer func() {
        _ = conn.Close()
    }()
    c := v1.NewToDoServiceClient(conn)
    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    defer func() {
        cancel()
    }()
    CreateHandle(ctx, c)

}

func CreateHandle(ctx context.Context, c v1.ToDoServiceClient) {
    t := time.Now().In(time.UTC)
    reminder, _ := ptypes.TimestampProto(t)
    pfx := t.Format(time.RFC3339Nano)
    req1 := v1.CreateRequest{
        Api: apiVersion,
        ToDo: &v1.ToDo{
            Title:       "title(" + pfx + ")",
            Description: "description" + pfx,
            Reminder:    reminder,
        },
    }
    res1, err := c.Create(ctx, &req1)
    if err != nil {
        log.Fatal("创建失败:%v", err)
    }
    log.Printf("Create result:%v", res1)
}

func ReadOneByIdHandle(ctx context.Context, c v1.ToDoServiceClient, id int64) {
    req2 := v1.ReadRequest{
        Api: apiVersion,
        Id:  id,
    }
    res2, err := c.Read(ctx, &req2)
    if err != nil {
        log.Fatal("读取失败,%v", err)
    }
    log.Printf("read result: %v", res2)
}
func UpdateHandle(ctx context.Context, c v1.ToDoServiceClient, id int64) {
    req3 := v1.UpdateRequest{
        Api: apiVersion,
        ToDo: &v1.ToDo{
            Id:          id,
            Title:       "新Title",
            Description: "描述",
            Reminder:    ptypes.TimestampNow(),
        },
    }
    res3, err := c.Update(ctx, &req3)
    if err != nil {
        log.Fatal("更新失败 %v", err)
    }
    log.Printf("Update result: %v", res3)
}

func ReadAllHandle(ctx context.Context, c v1.ToDoServiceClient) {
    req4 := v1.ReadAllRequest{
        Api: apiVersion,
    }
    res4, err := c.ReadAll(ctx, &req4)
    if err != nil {
        log.Fatal("获取全部数据失败 %v", err)
    }
    log.Printf("ReadAll result: %v", res4)
}

func DeleteHandle(ctx context.Context, c v1.ToDoServiceClient, id int64) {
    req5 := v1.DeleteRequest{
        Api: apiVersion,
        Id:  id,
    }

    res5, err := c.Delete(ctx, &req5)
    if err != nil {
        log.Fatal("删除失败 %v", err)
    }
    log.Printf("delete result: %v", res5)
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
一切皆自学
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!