oapi-codegen icon indicating copy to clipboard operation
oapi-codegen copied to clipboard

fiber-server generate incorrect type for header value

Open turbo-nyasha opened this issue 4 months ago • 1 comments

Hi!👋🏻 Current template for fiber-server has incorrect type for header values, because HTTP Spec allow sending multiple http headers with the same name, like Set-Cookie header.

Need to change template for generate correct compiled code.

Generated code by template:

headers := c.GetReqHeaders() //map[string][]string type
...
if value, found := headers[http.CanonicalHeaderKey("x-app-version")]; found { // value has []string type
		var XAppVersion ApplicationVersion
                // value bust be string
		err = runtime.BindStyledParameterWithOptions("simple", "x-app-version", value, &XAppVersion, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationHeader, Explode: false, Required: true})
		if err != nil {
			return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter x-app-version: %w", err).Error())
		}

		params.XAppVersion = XAppVersion

	} else {
		err = fmt.Errorf("Header parameter x-app-version is required, but not found: %w", err)
		return fiber.NewError(fiber.StatusBadRequest, err.Error())
	}

turbo-nyasha avatar Oct 18 '24 08:10 turbo-nyasha