feat: implement part of tag service (#2051)

* feat: add grpc gateway tempalte

* chore: update

* chore: move directory

* chore: update
This commit is contained in:
boojack
2023-07-30 00:00:49 +08:00
committed by GitHub
parent 9cedb3cc6c
commit 89ba2a6540
15 changed files with 446 additions and 243 deletions

33
api/v2/gw_mux.go Normal file
View File

@@ -0,0 +1,33 @@
package v2
import (
"context"
"fmt"
grpcRuntime "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
"github.com/labstack/echo/v4"
apiv2pb "github.com/usememos/memos/proto/gen/api/v2"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
// RegisterGateway registers the gRPC-Gateway with the given Echo instance.
func RegisterGateway(ctx context.Context, e *echo.Echo, grpcServerPort int) {
// Create a client connection to the gRPC Server we just started.
// This is where the gRPC-Gateway proxies the requests.
conn, err := grpc.DialContext(
ctx,
fmt.Sprintf(":%d", grpcServerPort),
grpc.WithTransportCredentials(insecure.NewCredentials()),
)
if err != nil {
panic(err)
}
gwMux := grpcRuntime.NewServeMux()
err = apiv2pb.RegisterTagServiceHandler(context.Background(), gwMux, conn)
if err != nil {
panic(err)
}
e.Any("/api/v2/*", echo.WrapHandler(gwMux))
}