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 3bea63fdea3..4cbfb2fbba2 100644
--- a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java
+++ b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java
@@ -68,6 +68,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}.
* */
@@ -168,6 +179,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 ae279fc0c6d..bad33a2836d 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");