Skip to content
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

[proto-gen-openapi] Wrong message included when message with same name exists in imported proto #392

Open
n0v1 opened this issue May 26, 2023 · 1 comment · May be fixed by #414
Open

[proto-gen-openapi] Wrong message included when message with same name exists in imported proto #392

n0v1 opened this issue May 26, 2023 · 1 comment · May be fixed by #414

Comments

@n0v1
Copy link

n0v1 commented May 26, 2023

We just noticed that gnostic's proto-gen-openapi may create a wrong OpenAPI v3 spec when a message with identical name exists in an imported proto even though the messages belong to different packages. This happens although the message from the imported proto is not used at all in the base proto.

Reproduction: https://github.com/n0v1/gnostic-gen-openapi-naming-issue-repro (see readme and proto files for details)

The generated API spec only includes HelloWorld from bar.proto (which is not used anywhere). I would expect it to include HelloWorld from foo.proto instead. Even using the fully-qualified name com.example.foo.HelloWorld in FooResponse does not fix this.

Setting option fq_schema_naming=true fixes it but I think even without this option proto-gen-openapi should not create a wrong specification. It should at least give a warning or throw an error when a message/schema name is ambiguous.

Relates to issues #309 and #353.

@zaakn
Copy link

zaakn commented Nov 7, 2023

As a similar case:

I imported openapiv3/annotations.proto which has a message named Contact (actually in openapiv3/OpenAPIv3.proto) to set option (openapi.v3.document). And this Contact is not used in my own foo.proto.

At the same time, Contact has been defined and used in foo.proto (package foo)

proto-gen-openapi unexpectedly treats foo.Contact as openapi.v3.Contact completely when fq_schema_naming=false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants