From 509d4a7d74b3b469f92dcd057fd3ae71e23288ce Mon Sep 17 00:00:00 2001 From: Kanai Masumi Date: Mon, 29 Aug 2022 13:55:33 +0900 Subject: [PATCH 1/3] test: internal/test/issues/issue-head-digit-of-httpheader --- .../issue-head-digit-of-httpheader/config.yaml | 7 +++++++ .../issues/issue-head-digit-of-httpheader/doc.go | 3 +++ .../issue-head-digit-of-httpheader/spec.yaml | 16 ++++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 internal/test/issues/issue-head-digit-of-httpheader/config.yaml create mode 100644 internal/test/issues/issue-head-digit-of-httpheader/doc.go create mode 100644 internal/test/issues/issue-head-digit-of-httpheader/spec.yaml diff --git a/internal/test/issues/issue-head-digit-of-httpheader/config.yaml b/internal/test/issues/issue-head-digit-of-httpheader/config.yaml new file mode 100644 index 0000000000..f3709acd71 --- /dev/null +++ b/internal/test/issues/issue-head-digit-of-httpheader/config.yaml @@ -0,0 +1,7 @@ +--- +package: head_digit_of_httpheader +generate: + strict-server: true +output: issue.gen.go +output-options: + skip-prune: true diff --git a/internal/test/issues/issue-head-digit-of-httpheader/doc.go b/internal/test/issues/issue-head-digit-of-httpheader/doc.go new file mode 100644 index 0000000000..4a2cdf80d6 --- /dev/null +++ b/internal/test/issues/issue-head-digit-of-httpheader/doc.go @@ -0,0 +1,3 @@ +package head_digit_of_httpheader + +//go:generate go run github.com/deepmap/oapi-codegen/cmd/oapi-codegen --config=config.yaml spec.yaml diff --git a/internal/test/issues/issue-head-digit-of-httpheader/spec.yaml b/internal/test/issues/issue-head-digit-of-httpheader/spec.yaml new file mode 100644 index 0000000000..b6a960ac0c --- /dev/null +++ b/internal/test/issues/issue-head-digit-of-httpheader/spec.yaml @@ -0,0 +1,16 @@ +openapi: 3.0.2 +info: + version: "0.0.1" +paths: + /foo: + get: + responses: + 200: + $ref: "#/components/responses/200" +components: + responses: + "200": + headers: + "000-foo": + schema: + type: string From be7eed98fa593097ca687f4aa91df27c0001eedc Mon Sep 17 00:00:00 2001 From: Kanai Masumi Date: Mon, 29 Aug 2022 10:34:43 +0900 Subject: [PATCH 2/3] fix: escape head digit from Request Header name --- pkg/codegen/operations.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/codegen/operations.go b/pkg/codegen/operations.go index f881b1426f..3aa64ac3fb 100644 --- a/pkg/codegen/operations.go +++ b/pkg/codegen/operations.go @@ -751,7 +751,7 @@ func GenerateResponseDefinitions(operationID string, responses openapi3.Response if err != nil { return nil, fmt.Errorf("error generating response header definition: %w", err) } - headerDefinition := ResponseHeaderDefinition{Name: headerName, GoName: ToCamelCase(headerName), Schema: contentSchema} + headerDefinition := ResponseHeaderDefinition{Name: headerName, GoName: SchemaNameToTypeName(headerName), Schema: contentSchema} responseHeaderDefinitions = append(responseHeaderDefinitions, headerDefinition) } From aa2b2431762d98b3f6a3be47b2d62a37db301735 Mon Sep 17 00:00:00 2001 From: Kanai Masumi Date: Mon, 29 Aug 2022 13:56:37 +0900 Subject: [PATCH 3/3] chore: add issue.gen.go(initial-digit-of-http-header) --- .../issue.gen.go | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 internal/test/issues/issue-head-digit-of-httpheader/issue.gen.go diff --git a/internal/test/issues/issue-head-digit-of-httpheader/issue.gen.go b/internal/test/issues/issue-head-digit-of-httpheader/issue.gen.go new file mode 100644 index 0000000000..0ac470b431 --- /dev/null +++ b/internal/test/issues/issue-head-digit-of-httpheader/issue.gen.go @@ -0,0 +1,27 @@ +// Package head_digit_of_httpheader provides primitives to interact with the openapi HTTP API. +// +// Code generated by github.com/deepmap/oapi-codegen version (devel) DO NOT EDIT. +package head_digit_of_httpheader + +import ( + "context" +) + +type N200ResponseHeaders struct { + N000Foo string +} +type N200Response struct { + Headers N200ResponseHeaders +} + +type GetFooRequestObject struct { +} + +type GetFoo200Response = N200Response + +// StrictServerInterface represents all server handlers. +type StrictServerInterface interface { + + // (GET /foo) + GetFoo(ctx context.Context, request GetFooRequestObject) interface{} +}