chore(header): Add support for RFC 9512: application/yaml (#3851)
* fix(binding): support application/yaml RFC 9512 defines application/yaml as the official YAML MIME type. application/x-yaml is deprecated. In this commit, we ensure it is recognized correctly in Content-Type. * fix(render): use application/yaml when rendering YAML As per RFC 9512, application/x-yaml is now deprecated and applications should use application/yaml. This commit fix the Content-Type header when rendering YAML.
This commit is contained in:
		@ -21,6 +21,7 @@ const (
 | 
			
		||||
	MIMEMSGPACK           = "application/x-msgpack"
 | 
			
		||||
	MIMEMSGPACK2          = "application/msgpack"
 | 
			
		||||
	MIMEYAML              = "application/x-yaml"
 | 
			
		||||
	MIMEYAML2             = "application/yaml"
 | 
			
		||||
	MIMETOML              = "application/toml"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -102,7 +103,7 @@ func Default(method, contentType string) Binding {
 | 
			
		||||
		return ProtoBuf
 | 
			
		||||
	case MIMEMSGPACK, MIMEMSGPACK2:
 | 
			
		||||
		return MsgPack
 | 
			
		||||
	case MIMEYAML:
 | 
			
		||||
	case MIMEYAML, MIMEYAML2:
 | 
			
		||||
		return YAML
 | 
			
		||||
	case MIMETOML:
 | 
			
		||||
		return TOML
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ const (
 | 
			
		||||
	MIMEMultipartPOSTForm = "multipart/form-data"
 | 
			
		||||
	MIMEPROTOBUF          = "application/x-protobuf"
 | 
			
		||||
	MIMEYAML              = "application/x-yaml"
 | 
			
		||||
	MIMEYAML2             = "application/yaml"
 | 
			
		||||
	MIMETOML              = "application/toml"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -96,7 +97,7 @@ func Default(method, contentType string) Binding {
 | 
			
		||||
		return XML
 | 
			
		||||
	case MIMEPROTOBUF:
 | 
			
		||||
		return ProtoBuf
 | 
			
		||||
	case MIMEYAML:
 | 
			
		||||
	case MIMEYAML, MIMEYAML2:
 | 
			
		||||
		return YAML
 | 
			
		||||
	case MIMEMultipartPOSTForm:
 | 
			
		||||
		return FormMultipart
 | 
			
		||||
 | 
			
		||||
@ -164,6 +164,8 @@ func TestBindingDefault(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	assert.Equal(t, YAML, Default("POST", MIMEYAML))
 | 
			
		||||
	assert.Equal(t, YAML, Default("PUT", MIMEYAML))
 | 
			
		||||
	assert.Equal(t, YAML, Default("POST", MIMEYAML2))
 | 
			
		||||
	assert.Equal(t, YAML, Default("PUT", MIMEYAML2))
 | 
			
		||||
 | 
			
		||||
	assert.Equal(t, TOML, Default("POST", MIMETOML))
 | 
			
		||||
	assert.Equal(t, TOML, Default("PUT", MIMETOML))
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user