Rever to "application/json" as default MIME type
As of #108, the `"application/graphql+json"` media type is supported and has been made the default. It seems that it is not ready for adoption now; so while we'll keep supporting it, this commit reverts back to `"application/json"` as the default media type for servers and clients. Closes gh-375
This commit is contained in:
@@ -55,12 +55,12 @@ final class WebTestClientTransport implements GraphQlTransport {
|
||||
public Mono<GraphQlResponse> execute(GraphQlRequest request) {
|
||||
|
||||
Map<String, Object> responseMap = this.webTestClient.post()
|
||||
.contentType(MediaType.APPLICATION_GRAPHQL)
|
||||
.accept(MediaType.APPLICATION_GRAPHQL)
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.accept(MediaType.APPLICATION_JSON)
|
||||
.bodyValue(request.toMap())
|
||||
.exchange()
|
||||
.expectStatus().isOk()
|
||||
.expectHeader().contentTypeCompatibleWith(MediaType.APPLICATION_GRAPHQL)
|
||||
.expectHeader().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)
|
||||
.expectBody(MAP_TYPE)
|
||||
.returnResult()
|
||||
.getResponseBody();
|
||||
|
||||
@@ -61,7 +61,7 @@ final class DefaultRSocketGraphQlClientBuilder
|
||||
}
|
||||
|
||||
private static RSocketRequester.Builder initRSocketRequestBuilder() {
|
||||
RSocketRequester.Builder requesterBuilder = RSocketRequester.builder().dataMimeType(MimeTypeUtils.APPLICATION_GRAPHQL);
|
||||
RSocketRequester.Builder requesterBuilder = RSocketRequester.builder().dataMimeType(MimeTypeUtils.APPLICATION_JSON);
|
||||
if (jackson2Present) {
|
||||
requesterBuilder.rsocketStrategies(
|
||||
RSocketStrategies.builder()
|
||||
|
||||
@@ -60,7 +60,7 @@ final class HttpGraphQlTransport implements GraphQlTransport {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
webClient.mutate().defaultHeaders(headers::putAll);
|
||||
MediaType contentType = headers.getContentType();
|
||||
return (contentType != null ? contentType : MediaType.APPLICATION_GRAPHQL);
|
||||
return (contentType != null ? contentType : MediaType.APPLICATION_JSON);
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ final class HttpGraphQlTransport implements GraphQlTransport {
|
||||
public Mono<GraphQlResponse> execute(GraphQlRequest request) {
|
||||
return this.webClient.post()
|
||||
.contentType(this.contentType)
|
||||
.accept(MediaType.APPLICATION_GRAPHQL, MediaType.APPLICATION_JSON)
|
||||
.accept(MediaType.APPLICATION_JSON, MediaType.APPLICATION_GRAPHQL)
|
||||
.bodyValue(request.toMap())
|
||||
.retrieve()
|
||||
.bodyToMono(MAP_TYPE)
|
||||
|
||||
@@ -94,7 +94,7 @@ public class GraphQlHttpHandler {
|
||||
return accepted;
|
||||
}
|
||||
}
|
||||
return MediaType.APPLICATION_GRAPHQL;
|
||||
return MediaType.APPLICATION_JSON;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ public class GraphQlHttpHandler {
|
||||
return accepted;
|
||||
}
|
||||
}
|
||||
return MediaType.APPLICATION_GRAPHQL;
|
||||
return MediaType.APPLICATION_JSON;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -183,18 +183,18 @@ public class WebGraphQlClientBuilderTests {
|
||||
setup.initBuilder().build().document(DOCUMENT).execute().block(TIMEOUT);
|
||||
|
||||
WebGraphQlRequest request = setup.getActualRequest();
|
||||
assertThat(request.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_GRAPHQL);
|
||||
assertThat(request.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
}
|
||||
|
||||
@Test
|
||||
void contentTypeOverride() {
|
||||
|
||||
HttpBuilderSetup setup = new HttpBuilderSetup();
|
||||
setup.initBuilder().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).build()
|
||||
setup.initBuilder().header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_GRAPHQL_VALUE).build()
|
||||
.document(DOCUMENT).execute().block(TIMEOUT);
|
||||
|
||||
WebGraphQlRequest request = setup.getActualRequest();
|
||||
assertThat(request.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
assertThat(request.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_GRAPHQL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -51,14 +51,14 @@ public class GraphQlHttpHandlerTests {
|
||||
|
||||
|
||||
@Test
|
||||
void shouldProduceApplicationGraphQlByDefault() {
|
||||
void shouldProduceApplicationJsonByDefault() {
|
||||
MockServerHttpRequest httpRequest = MockServerHttpRequest.post("/")
|
||||
.contentType(MediaType.APPLICATION_GRAPHQL).accept(MediaType.ALL).build();
|
||||
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.ALL).build();
|
||||
|
||||
MockServerHttpResponse httpResponse = handleRequest(
|
||||
httpRequest, this.greetingHandler, Collections.singletonMap("query", "{greeting}"));
|
||||
|
||||
assertThat(httpResponse.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_GRAPHQL);
|
||||
assertThat(httpResponse.getHeaders().getContentType()).isEqualTo(MediaType.APPLICATION_JSON);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -75,7 +75,7 @@ public class GraphQlHttpHandlerTests {
|
||||
@Test
|
||||
void shouldProduceApplicationJson() {
|
||||
MockServerHttpRequest httpRequest = MockServerHttpRequest.post("/")
|
||||
.contentType(MediaType.APPLICATION_GRAPHQL).accept(MediaType.APPLICATION_JSON).build();
|
||||
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).build();
|
||||
|
||||
MockServerHttpResponse httpResponse = handleRequest(
|
||||
httpRequest, this.greetingHandler, Collections.singletonMap("query", "{greeting}"));
|
||||
|
||||
@@ -56,10 +56,10 @@ public class GraphQlHttpHandlerTests {
|
||||
.queryFetcher("greeting", (env) -> "Hello").toHttpHandler();
|
||||
|
||||
@Test
|
||||
void shouldProduceApplicationGraphQlByDefault() throws Exception {
|
||||
void shouldProduceApplicationJsonByDefault() throws Exception {
|
||||
MockHttpServletRequest servletRequest = createServletRequest("{\"query\":\"{ greeting }\"}", "*/*");
|
||||
MockHttpServletResponse servletResponse = handleRequest(servletRequest, this.greetingHandler);
|
||||
assertThat(servletResponse.getContentType()).isEqualTo(MediaType.APPLICATION_GRAPHQL_VALUE);
|
||||
assertThat(servletResponse.getContentType()).isEqualTo(MediaType.APPLICATION_JSON_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -111,7 +111,7 @@ public class GraphQlHttpHandlerTests {
|
||||
|
||||
private MockHttpServletRequest createServletRequest(String query, String accept) {
|
||||
MockHttpServletRequest servletRequest = new MockHttpServletRequest("POST", "/");
|
||||
servletRequest.setContentType(MediaType.APPLICATION_GRAPHQL_VALUE);
|
||||
servletRequest.setContentType(MediaType.APPLICATION_JSON_VALUE);
|
||||
servletRequest.setContent(query.getBytes(StandardCharsets.UTF_8));
|
||||
servletRequest.addHeader("Accept", accept);
|
||||
servletRequest.setAsyncSupported(true);
|
||||
|
||||
Reference in New Issue
Block a user