-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Google-recommended way of structuring resource path is not supported (https://google.aip.dev/127) #28
Comments
There is also more complicated, but also commonly used case when (e.g. for update requests) nested field is used as a part of resource path, look at the Dialogflow proto for example: https://github.com/googleapis/googleapis/blob/master/google/cloud/dialogflow/cx/v3/intent.proto#L80 They have
That technically should be translated into grpc-gateway itself fully supporting such a usecase |
👋 @Gugic protoc-gen-grpc-gateway didn't cover this edge case yet unfortunately. However, contributions are welcome, ping me in a PR we can go from there. |
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}`
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Closes grpc-ecosystem#28 Adds support for 2 related cases in URLs: * Support path segments like in https://google.aip.dev/127, where the URL contains a pattern like `post: "/v1/{parent=publishers/*}/books"` * Support nested field names in the URL, where the URL is structured like: ``` option (google.api.http) = { patch: "/v3/{intent.name=projects/*/locations/*/agents/*/intents/*}" body: "intent" }; ``` This gets translated to `/v3/${req["intent"]["name"]}` While here, use the newer protoc-gen-go-grpc plugin for generating server test code, due to deprecated usage of plugin=grpc (see https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0#v1.20-grpc-support)
Hi, I am trying to setup grpc-gateway for the service and doing it using Google AIP recommendations and provided linter.
So if you would take a look at https://google.aip.dev/127 - the recommended way of using http annotations for more or less complicated APIs looks like that:
post: "/v1/{parent=publishers/*}/books"
However protoc-gen-grpc-gateway-ts would not generate expected for that case
/v1/${req["parent"]}/books
, instead of that protoc-gen-grpc-gateway-ts would generate/v1/${req["parentpublishers"]}/books
The text was updated successfully, but these errors were encountered: