gRPC gateway generated files IDE support

72 views
Skip to first unread message

Rustem Yusupov

unread,
May 9, 2022, 5:05:14 AM5/9/22
to bazel-discuss
Hi dears!

Could you please help me with gRPC gateway?

I use https://rules-proto-grpc.com/en/latest/lang/grpc-gateway.html#gateway-grpc-library to generate gRPC gateway proto files and in general it works fine. But I have at least 2 issues there:

1. I can't import generated files (most likely because gazelle generates another go_proto_library.
2. IDE (Goland) can't recognise import path (I use rewrite in my root go.mod file) without having generated go files inside the workspace.

Here is my BUILD file for proto folder:
```
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
load("@golink//proto:proto.bzl", "go_proto_link")
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_proto_grpc//grpc-gateway:defs.bzl", "gateway_grpc_compile", "gateway_grpc_library")

gateway_grpc_library(
name = "recommendations_proto_gateway_library",
importpath = "ankorstore.io/proto/recommendations",
protos = [":recommendations_proto"],
)

proto_library(
name = "recommendations_proto",
srcs = ["recommendations.proto"],
visibility = ["//visibility:public"],
deps = ["@go_googleapis//google/api:annotations_proto"],
)

go_proto_library(
name = "recommendations_go_proto",
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
importpath = "ankorstore.io/proto/recommendations",
proto = ":recommendations_proto",
visibility = ["//visibility:public"],
deps = ["@go_googleapis//google/api:annotations_go_proto"],
)

go_library(
name = "recommendations",
embed = [":recommendations_go_proto"],
importpath = "ankorstore.io/proto/recommendations",
visibility = ["//visibility:public"],
)

go_proto_link(
name = "recommendations_go_proto_link",
dep = ":recommendations_go_proto",
version = "v1",
)
```

N.B. go_proto_link was used to put generated proto file by @rules_proto inside the workspace but it doesn't work for gateway_grpc_library. 

Could you please someone to help me to figure it out as I'm very new in Bazel. Thank you very much in advance!


Best regards,
Rustem Yusupov


Reply all
Reply to author
Forward
0 new messages