Fix versioned API incompatibility with GraphQL
This commit is contained in:
parent
df5eb48c24
commit
ce879b3863
|
@ -69,6 +69,11 @@ public class VersionedApiConverterInterceptor extends InterceptorAdapter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean outgoingResponse(RequestDetails theRequestDetails, ResponseDetails theResponseDetails, HttpServletRequest theServletRequest, HttpServletResponse theServletResponse) throws AuthenticationException {
|
public boolean outgoingResponse(RequestDetails theRequestDetails, ResponseDetails theResponseDetails, HttpServletRequest theServletRequest, HttpServletResponse theServletResponse) throws AuthenticationException {
|
||||||
|
IBaseResource responseResource = theResponseDetails.getResponseResource();
|
||||||
|
if (responseResource == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
String[] formatParams = theRequestDetails.getParameters().get(Constants.PARAM_FORMAT);
|
String[] formatParams = theRequestDetails.getParameters().get(Constants.PARAM_FORMAT);
|
||||||
String accept = null;
|
String accept = null;
|
||||||
if (formatParams != null && formatParams.length > 0) {
|
if (formatParams != null && formatParams.length > 0) {
|
||||||
|
@ -92,7 +97,6 @@ public class VersionedApiConverterInterceptor extends InterceptorAdapter {
|
||||||
wantVersion = FhirVersionEnum.forVersionString(wantVersionString);
|
wantVersion = FhirVersionEnum.forVersionString(wantVersionString);
|
||||||
}
|
}
|
||||||
|
|
||||||
IBaseResource responseResource = theResponseDetails.getResponseResource();
|
|
||||||
FhirVersionEnum haveVersion = responseResource.getStructureFhirVersionEnum();
|
FhirVersionEnum haveVersion = responseResource.getStructureFhirVersionEnum();
|
||||||
|
|
||||||
IBaseResource converted = null;
|
IBaseResource converted = null;
|
||||||
|
|
|
@ -70,7 +70,7 @@ public abstract class BaseSearchParamRegistry<SP extends IBaseResource> implemen
|
||||||
private volatile Map<String, Map<String, RuntimeSearchParam>> myActiveSearchParams;
|
private volatile Map<String, Map<String, RuntimeSearchParam>> myActiveSearchParams;
|
||||||
private volatile long myLastRefresh;
|
private volatile long myLastRefresh;
|
||||||
|
|
||||||
@Autowired
|
@autowired
|
||||||
private IInterceptorBroadcaster myInterceptorBroadcaster;
|
private IInterceptorBroadcaster myInterceptorBroadcaster;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -403,6 +403,21 @@ public class ResponseHighlightingInterceptorTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testHighlightGraphQLResponseNonHighlighted() throws Exception {
|
||||||
|
HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient/A/$graphql?query=" + UrlUtil.escapeUrlParam("{name}"));
|
||||||
|
httpGet.addHeader("Accept", "application/jon");
|
||||||
|
CloseableHttpResponse status = ourClient.execute(httpGet);
|
||||||
|
String responseContent = IOUtils.toString(status.getEntity().getContent(), Charsets.UTF_8);
|
||||||
|
status.close();
|
||||||
|
|
||||||
|
ourLog.info("Resp: {}", responseContent);
|
||||||
|
assertEquals(200, status.getStatusLine().getStatusCode());
|
||||||
|
|
||||||
|
assertThat(responseContent, stringContainsInOrder("{\"foo\":\"bar\"}"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHighlightException() throws Exception {
|
public void testHighlightException() throws Exception {
|
||||||
ResponseHighlighterInterceptor ic = ourInterceptor;
|
ResponseHighlighterInterceptor ic = ourInterceptor;
|
||||||
|
|
|
@ -44,6 +44,10 @@
|
||||||
SubscriptionDstu2Config incorrectly pointed to a DSTU3 configuration file. This
|
SubscriptionDstu2Config incorrectly pointed to a DSTU3 configuration file. This
|
||||||
has been corrected.
|
has been corrected.
|
||||||
</action>
|
</action>
|
||||||
|
<action type="fix">
|
||||||
|
When using the VersionedApiConverterInterceptor, GraphQL responses failed with an HTTP
|
||||||
|
500 error.
|
||||||
|
</action>
|
||||||
</release>
|
</release>
|
||||||
<release version="4.0.0" date="2019-08-14" description="Igloo">
|
<release version="4.0.0" date="2019-08-14" description="Igloo">
|
||||||
<action type="add">
|
<action type="add">
|
||||||
|
|
Loading…
Reference in New Issue