diff --git a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java index 05809bc5ad7..c7c5468b589 100644 --- a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java +++ b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java @@ -65,6 +65,17 @@ public abstract class MimeTypeUtils { */ public static final String ALL_VALUE = "*/*"; + /** + * Public constant mime type for {@code application/graphql+json}. + * @see GraphQL over HTTP spec + * */ + public static final MimeType APPLICATION_GRAPHQL; + + /** + * A String equivalent of {@link MimeTypeUtils#APPLICATION_GRAPHQL}. + */ + public static final String APPLICATION_GRAPHQL_VALUE = "application/graphql+json"; + /** * Public constant mime type for {@code application/json}. * */ @@ -165,6 +176,7 @@ public abstract class MimeTypeUtils { static { // Not using "parseMimeType" to avoid static init cost ALL = new MimeType("*", "*"); + APPLICATION_GRAPHQL = new MimeType("application", "graphql+json"); APPLICATION_JSON = new MimeType("application", "json"); APPLICATION_OCTET_STREAM = new MimeType("application", "octet-stream"); APPLICATION_XML = new MimeType("application", "xml"); diff --git a/spring-web/src/main/java/org/springframework/http/MediaType.java b/spring-web/src/main/java/org/springframework/http/MediaType.java index 729555add95..2a784e0386b 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -95,6 +95,17 @@ public class MediaType extends MimeType implements Serializable { */ public static final String APPLICATION_FORM_URLENCODED_VALUE = "application/x-www-form-urlencoded"; + /** + * Public constant media type for {@code application/graphql+json}. + * @see GraphQL over HTTP spec + */ + public static final MediaType APPLICATION_GRAPHQL; + + /** + * A String equivalent of {@link MediaType#APPLICATION_GRAPHQL}. + */ + public static final String APPLICATION_GRAPHQL_VALUE = "application/graphql+json"; + /** * Public constant media type for {@code application/json}. */ @@ -396,6 +407,7 @@ public class MediaType extends MimeType implements Serializable { APPLICATION_ATOM_XML = new MediaType("application", "atom+xml"); APPLICATION_CBOR = new MediaType("application", "cbor"); APPLICATION_FORM_URLENCODED = new MediaType("application", "x-www-form-urlencoded"); + APPLICATION_GRAPHQL = new MediaType("application", "graphql+json"); APPLICATION_JSON = new MediaType("application", "json"); APPLICATION_JSON_UTF8 = new MediaType("application", "json", StandardCharsets.UTF_8); APPLICATION_NDJSON = new MediaType("application", "x-ndjson");