Skip to content

Commit 40cdeb5

Browse files
fix isJsonMediaType (#688)
1 parent e071dfb commit 40cdeb5

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

checker/check_types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ func isStronglyTyped(mediaType string) bool {
107107
}
108108

109109
func isJsonMediaType(mediaType string) bool {
110-
return mediaType == "application/json" ||
111-
(strings.HasPrefix(mediaType, "application/vnd.") && strings.HasSuffix(mediaType, "+json"))
110+
// Structured Syntax Suffixes: https://www.rfc-editor.org/rfc/rfc6838#section-4.2.8
111+
return mediaType == "application/json" || strings.HasSuffix(mediaType, "+json")
112112
}
113113

114114
// isFormatContained checks if from is contained in to

checker/check_types_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,3 +132,14 @@ func TestFormatAdded(t *testing.T) {
132132
}
133133
breaking(t, typeDiff, formatDiff, false, revisionType)
134134
}
135+
136+
func TestIsJsonMediaType(t *testing.T) {
137+
require.True(t, isJsonMediaType("application/json"))
138+
require.True(t, isJsonMediaType("application/problem+json"))
139+
require.True(t, isJsonMediaType("application/vnd.api+json"))
140+
require.True(t, isJsonMediaType("application/any-string+json"))
141+
require.False(t, isJsonMediaType("application/xml"))
142+
require.False(t, isJsonMediaType("text/plain"))
143+
require.False(t, isJsonMediaType("application/json-patch")) // Note: Differs from application/json-patch+json
144+
require.False(t, isJsonMediaType(""))
145+
}

0 commit comments

Comments
 (0)