-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Merging two .proto files with different packages using protoc-gen-swagger throws error #837
Comments
Haha I already answered in #746, but to clarify, it is currently working as intended, that is not to say that we couldn't look into making this work. I would say that it's not uncommon when existing a set of services to specify another, superset service and use that with the gateway as a simple proxy to the others. |
Would you by any chance know of any hack I can use for now to get those swagger files concatenated, if so would mind sharing? |
I think you'd have to write a post processing tool to read both and merge the fields. There probably exists tools to do this. |
@bsakweson https://github.com/go-swagger/go-swagger can merge swagger files. we're using this to create one unified swagger definition. |
I wanted to generate the API into a single swagger file with services spread out throughout the codebase (which I believe is the same issue referenced here). I changed the proto argument to take a label_list, and updated a few locations to handle it. CFHT/grpc-gateway-api-test@c05b2e2 and I now I can define a singular rule in the project that references all of the services I want included in the API documentation.
Is this something you'd be interested in a PR for if I cleaned it up? Is there something I'm missing that makes this a bad idea? |
Would this be a breaking change from today? I'm not familiar enough with our rule to say. Maybe @achew22 can weigh in. |
We could add a new option, |
Hello, I have similar issue to generate single swagger file from multiple proto files. I found out that there was an effort to generate single swagger output from multiple proto files in Until now, it is the best way to generate single swagger file is to merge multiple swagger files using go-swagger tool? (thanks to @birdayz) |
oh wow, thanks for the info. 👍 I was so confused with lots of issues, but finally I could generate swagger file that I want, thanks for your comment. |
Nice, happy to hear it! |
I ran into an issue similar to 746,.
I have a setup with multiple micro services each defined in their own .proto file. Code generation works well until I tried to combine my openAPI documentation using
protoc-gen-swagger
fromgrpc-gateway
.Using this command
protoc --proto_path=api/v1 --proto_path=$GOPATH/src --proto_path=third_party --swagger_out=logtostderr=true,allow_merge=true:third_party/OpenAPI a/a.proto b/b.proto
to generate a mergedapidocs.swagger.json
file containing all services defined in a and b respectively so that I can serve it as a single page throws this error--swagger_out: inconsistent package names: a b
. Notice that a and b are all in different packages a and b.service a:
service b:
Am I using this incorrectly? I would think that my use case is plausible since having each service in its own package helps maintained separation of concerns and keep service module smaller.
The text was updated successfully, but these errors were encountered: