-
Notifications
You must be signed in to change notification settings - Fork 251
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
protoc-gen-openapi: remove duplicate body params
When a request has both path parameters and body = "*", the path parameters were being repeated in the body. But according to the docs: the special name `*` is used to define that every field not bound by the path template should be mapped to the request body. This commit does exactly that, when the body is `*` and there are some path parameters, then the a new message schema is created that does not include the path parameters. The name of the schema is the same as the message name, with the `_Body` suffix. fixes #323
- Loading branch information
1 parent
ad271d5
commit e707445
Showing
44 changed files
with
1,754 additions
and
225 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
97 changes: 97 additions & 0 deletions
97
cmd/protoc-gen-openapi/examples/tests/additional_bindings/openapi_default_response.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# Generated with protoc-gen-openapi | ||
# https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi | ||
|
||
openapi: 3.0.3 | ||
info: | ||
title: Messaging API | ||
version: 0.0.1 | ||
paths: | ||
/v1/messages: | ||
patch: | ||
tags: | ||
- Messaging | ||
operationId: Messaging_UpdateMessage | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '#/components/schemas/Message' | ||
required: true | ||
responses: | ||
"200": | ||
description: OK | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '#/components/schemas/Message' | ||
default: | ||
description: Default error response | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '#/components/schemas/Status' | ||
/v1/messages/{messageId}: | ||
patch: | ||
tags: | ||
- Messaging | ||
operationId: Messaging_UpdateMessage | ||
parameters: | ||
- name: messageId | ||
in: path | ||
required: true | ||
schema: | ||
type: string | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: string | ||
required: true | ||
responses: | ||
"200": | ||
description: OK | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '#/components/schemas/Message' | ||
default: | ||
description: Default error response | ||
content: | ||
application/json: | ||
schema: | ||
$ref: '#/components/schemas/Status' | ||
components: | ||
schemas: | ||
GoogleProtobufAny: | ||
type: object | ||
properties: | ||
'@type': | ||
type: string | ||
description: The type of the serialized message. | ||
additionalProperties: true | ||
description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message. | ||
Message: | ||
type: object | ||
properties: | ||
messageId: | ||
type: string | ||
text: | ||
type: string | ||
Status: | ||
type: object | ||
properties: | ||
code: | ||
type: integer | ||
description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. | ||
format: int32 | ||
message: | ||
type: string | ||
description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. | ||
details: | ||
type: array | ||
items: | ||
$ref: '#/components/schemas/GoogleProtobufAny' | ||
description: A list of messages that carry the error details. There is a common set of message types for APIs to use. | ||
description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' | ||
tags: | ||
- name: Messaging |
Oops, something went wrong.