diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/EmptyPathServiceRetrofit.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/EmptyPathServiceRetrofit.java index a6e24c965..b3a69c13d 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/EmptyPathServiceRetrofit.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/EmptyPathServiceRetrofit.java @@ -9,6 +9,6 @@ @Generated("com.palantir.conjure.java.services.Retrofit2ServiceGenerator") public interface EmptyPathServiceRetrofit { @GET("./") - @Headers("hr-path-template: /") + @Headers({"hr-path-template: /", "Accept: application/json"}) Call emptyPath(); } diff --git a/conjure-java-core/src/integrationInput/java/com/palantir/product/EteServiceRetrofit.java b/conjure-java-core/src/integrationInput/java/com/palantir/product/EteServiceRetrofit.java index 83e4f169c..78133fd5d 100644 --- a/conjure-java-core/src/integrationInput/java/com/palantir/product/EteServiceRetrofit.java +++ b/conjure-java-core/src/integrationInput/java/com/palantir/product/EteServiceRetrofit.java @@ -24,63 +24,63 @@ @Generated("com.palantir.conjure.java.services.Retrofit2ServiceGenerator") public interface EteServiceRetrofit { @GET("./base/string") - @Headers("hr-path-template: /base/string") + @Headers({"hr-path-template: /base/string", "Accept: application/json"}) Call string(@Header("Authorization") AuthHeader authHeader); @GET("./base/integer") - @Headers("hr-path-template: /base/integer") + @Headers({"hr-path-template: /base/integer", "Accept: application/json"}) Call integer(@Header("Authorization") AuthHeader authHeader); @GET("./base/double") - @Headers("hr-path-template: /base/double") + @Headers({"hr-path-template: /base/double", "Accept: application/json"}) Call double_(@Header("Authorization") AuthHeader authHeader); @GET("./base/boolean") - @Headers("hr-path-template: /base/boolean") + @Headers({"hr-path-template: /base/boolean", "Accept: application/json"}) Call boolean_(@Header("Authorization") AuthHeader authHeader); @GET("./base/safelong") - @Headers("hr-path-template: /base/safelong") + @Headers({"hr-path-template: /base/safelong", "Accept: application/json"}) Call safelong(@Header("Authorization") AuthHeader authHeader); @GET("./base/rid") - @Headers("hr-path-template: /base/rid") + @Headers({"hr-path-template: /base/rid", "Accept: application/json"}) Call rid(@Header("Authorization") AuthHeader authHeader); @GET("./base/bearertoken") - @Headers("hr-path-template: /base/bearertoken") + @Headers({"hr-path-template: /base/bearertoken", "Accept: application/json"}) Call bearertoken(@Header("Authorization") AuthHeader authHeader); @GET("./base/optionalString") - @Headers("hr-path-template: /base/optionalString") + @Headers({"hr-path-template: /base/optionalString", "Accept: application/json"}) Call> optionalString(@Header("Authorization") AuthHeader authHeader); @GET("./base/optionalEmpty") - @Headers("hr-path-template: /base/optionalEmpty") + @Headers({"hr-path-template: /base/optionalEmpty", "Accept: application/json"}) Call> optionalEmpty(@Header("Authorization") AuthHeader authHeader); @GET("./base/datetime") - @Headers("hr-path-template: /base/datetime") + @Headers({"hr-path-template: /base/datetime", "Accept: application/json"}) Call datetime(@Header("Authorization") AuthHeader authHeader); @GET("./base/binary") - @Headers("hr-path-template: /base/binary") + @Headers({"hr-path-template: /base/binary", "Accept: application/octet-stream"}) @Streaming Call binary(@Header("Authorization") AuthHeader authHeader); @POST("./base/notNullBody") - @Headers("hr-path-template: /base/notNullBody") + @Headers({"hr-path-template: /base/notNullBody", "Accept: application/json"}) Call notNullBody( @Header("Authorization") AuthHeader authHeader, @Body StringAliasExample notNullBody); @GET("./base/optionalAliasOne") - @Headers("hr-path-template: /base/optionalAliasOne") + @Headers({"hr-path-template: /base/optionalAliasOne", "Accept: application/json"}) Call optionalAliasOne( @Header("Authorization") AuthHeader authHeader, @Query("queryParamName") Optional queryParamName); @GET("./base/aliasTwo") - @Headers("hr-path-template: /base/aliasTwo") + @Headers({"hr-path-template: /base/aliasTwo", "Accept: application/json"}) Call aliasTwo( @Header("Authorization") AuthHeader authHeader, @Query("queryParamName") NestedStringAliasExample queryParamName); diff --git a/conjure-java-core/src/main/java/com/palantir/conjure/java/services/Retrofit2ServiceGenerator.java b/conjure-java-core/src/main/java/com/palantir/conjure/java/services/Retrofit2ServiceGenerator.java index 784fa011a..bbb1ffd41 100644 --- a/conjure-java-core/src/main/java/com/palantir/conjure/java/services/Retrofit2ServiceGenerator.java +++ b/conjure-java-core/src/main/java/com/palantir/conjure/java/services/Retrofit2ServiceGenerator.java @@ -55,6 +55,7 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import javax.lang.model.element.Modifier; +import javax.ws.rs.core.MediaType; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,6 +68,9 @@ public final class Retrofit2ServiceGenerator implements ServiceGenerator { private static final ClassName CALL_TYPE = ClassName.get("retrofit2", "Call"); private static final String AUTH_HEADER_NAME = "Authorization"; + private static final String JSON_MEDIA_TYPE = MediaType.APPLICATION_JSON; + private static final String OCTET_STREAM_MEDIA_TYPE = MediaType.APPLICATION_OCTET_STREAM; + private static final Logger log = LoggerFactory.getLogger(Retrofit2ServiceGenerator.class); private final Set featureFlags; @@ -133,11 +137,18 @@ private MethodSpec generateServiceMethod( .addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT) .addAnnotation(AnnotationSpec.builder(httpMethodToClassName(endpointDef.getHttpMethod().get().name())) .addMember("value", "$S", "." + endpointPathWithoutRegex) - .build()) - .addAnnotation(AnnotationSpec.builder(ClassName.get("retrofit2.http", "Headers")) - .addMember("value", "$S", "hr-path-template: " + endpointPathWithoutRegex) .build()); + AnnotationSpec.Builder headersBuilder = AnnotationSpec.builder(ClassName.get("retrofit2.http", "Headers")) + .addMember("value", "$S", "hr-path-template: " + endpointPathWithoutRegex); + endpointDef.getReturns().ifPresent(type -> { + String mediaType = type.accept(TypeVisitor.IS_BINARY) + ? MediaType.APPLICATION_OCTET_STREAM + : MediaType.APPLICATION_JSON; + headersBuilder.addMember("value", "$S", "Accept: " + mediaType); + }); + methodBuilder.addAnnotation(headersBuilder.build()); + if (endpointDef.getReturns().map(type -> type.accept(TypeVisitor.IS_BINARY)).orElse(false)) { methodBuilder.addAnnotation(AnnotationSpec.builder(ClassName.get("retrofit2.http", "Streaming")).build()); } diff --git a/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit b/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit index e895a6e78..688851a2d 100644 --- a/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit +++ b/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit @@ -36,44 +36,56 @@ import retrofit2.http.Streaming; public interface TestServiceRetrofit { /** Returns a mapping from file system id to backing file system configuration. */ @GET("./catalog/fileSystems") - @Headers("hr-path-template: /catalog/fileSystems") + @Headers({"hr-path-template: /catalog/fileSystems", "Accept: application/json"}) Call> getFileSystems( @Header("Authorization") AuthHeader authHeader); @POST("./catalog/datasets") - @Headers("hr-path-template: /catalog/datasets") + @Headers({"hr-path-template: /catalog/datasets", "Accept: application/json"}) Call createDataset( @Header("Authorization") AuthHeader authHeader, @Body CreateDatasetRequest request, @Header("Test-Header") String testHeaderArg); @GET("./catalog/datasets/{datasetRid}") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}") + @Headers({"hr-path-template: /catalog/datasets/{datasetRid}", "Accept: application/json"}) Call> getDataset( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw", + "Accept: application/octet-stream" + }) @Streaming Call getRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw-aliased") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw-aliased") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw-aliased", + "Accept: application/json" + }) Call getAliasedRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw-maybe") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw-maybe") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw-maybe", + "Accept: application/json" + }) Call> maybeGetRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/string-aliased") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/string-aliased") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/string-aliased", + "Accept: application/json" + }) Call getAliasedString( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @@ -84,7 +96,10 @@ public interface TestServiceRetrofit { @Header("Authorization") AuthHeader authHeader, @Body RequestBody input); @GET("./catalog/datasets/{datasetRid}/branches") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branches") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branches", + "Accept: application/json" + }) Call> getBranches( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @@ -95,27 +110,36 @@ public interface TestServiceRetrofit { * @deprecated use getBranches instead */ @GET("./catalog/datasets/{datasetRid}/branchesDeprecated") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branchesDeprecated") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branchesDeprecated", + "Accept: application/json" + }) @Deprecated Call> getBranchesDeprecated( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/branches/{branch}/resolve") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branches/{branch}/resolve") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branches/{branch}/resolve", + "Accept: application/json" + }) Call> resolveBranch( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid, @Path(value = "branch", encoded = true) String branch); @GET("./catalog/datasets/{datasetRid}/testParam") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/testParam") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/testParam", + "Accept: application/json" + }) Call> testParam( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @POST("./catalog/test-query-params") - @Headers("hr-path-template: /catalog/test-query-params") + @Headers({"hr-path-template: /catalog/test-query-params", "Accept: application/json"}) Call testQueryParams( @Header("Authorization") AuthHeader authHeader, @Body String query, @@ -137,19 +161,19 @@ public interface TestServiceRetrofit { @Query("optionalEnd") Optional optionalEnd); @GET("./catalog/boolean") - @Headers("hr-path-template: /catalog/boolean") + @Headers({"hr-path-template: /catalog/boolean", "Accept: application/json"}) Call testBoolean(@Header("Authorization") AuthHeader authHeader); @GET("./catalog/double") - @Headers("hr-path-template: /catalog/double") + @Headers({"hr-path-template: /catalog/double", "Accept: application/json"}) Call testDouble(@Header("Authorization") AuthHeader authHeader); @GET("./catalog/integer") - @Headers("hr-path-template: /catalog/integer") + @Headers({"hr-path-template: /catalog/integer", "Accept: application/json"}) Call testInteger(@Header("Authorization") AuthHeader authHeader); @POST("./catalog/optional") - @Headers("hr-path-template: /catalog/optional") + @Headers({"hr-path-template: /catalog/optional", "Accept: application/json"}) Call> testPostOptional( @Header("Authorization") AuthHeader authHeader, @Body Optional maybeString); diff --git a/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_completable_future b/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_completable_future index 441723656..a3f071ea5 100644 --- a/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_completable_future +++ b/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_completable_future @@ -36,44 +36,56 @@ import retrofit2.http.Streaming; public interface TestServiceRetrofit { /** Returns a mapping from file system id to backing file system configuration. */ @GET("./catalog/fileSystems") - @Headers("hr-path-template: /catalog/fileSystems") + @Headers({"hr-path-template: /catalog/fileSystems", "Accept: application/json"}) CompletableFuture> getFileSystems( @Header("Authorization") AuthHeader authHeader); @POST("./catalog/datasets") - @Headers("hr-path-template: /catalog/datasets") + @Headers({"hr-path-template: /catalog/datasets", "Accept: application/json"}) CompletableFuture createDataset( @Header("Authorization") AuthHeader authHeader, @Body CreateDatasetRequest request, @Header("Test-Header") String testHeaderArg); @GET("./catalog/datasets/{datasetRid}") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}") + @Headers({"hr-path-template: /catalog/datasets/{datasetRid}", "Accept: application/json"}) CompletableFuture> getDataset( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw", + "Accept: application/octet-stream" + }) @Streaming CompletableFuture getRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw-aliased") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw-aliased") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw-aliased", + "Accept: application/json" + }) CompletableFuture getAliasedRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw-maybe") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw-maybe") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw-maybe", + "Accept: application/json" + }) CompletableFuture> maybeGetRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/string-aliased") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/string-aliased") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/string-aliased", + "Accept: application/json" + }) CompletableFuture getAliasedString( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @@ -84,7 +96,10 @@ public interface TestServiceRetrofit { @Header("Authorization") AuthHeader authHeader, @Body RequestBody input); @GET("./catalog/datasets/{datasetRid}/branches") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branches") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branches", + "Accept: application/json" + }) CompletableFuture> getBranches( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @@ -95,27 +110,36 @@ public interface TestServiceRetrofit { * @deprecated use getBranches instead */ @GET("./catalog/datasets/{datasetRid}/branchesDeprecated") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branchesDeprecated") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branchesDeprecated", + "Accept: application/json" + }) @Deprecated CompletableFuture> getBranchesDeprecated( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/branches/{branch}/resolve") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branches/{branch}/resolve") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branches/{branch}/resolve", + "Accept: application/json" + }) CompletableFuture> resolveBranch( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid, @Path(value = "branch", encoded = true) String branch); @GET("./catalog/datasets/{datasetRid}/testParam") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/testParam") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/testParam", + "Accept: application/json" + }) CompletableFuture> testParam( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @POST("./catalog/test-query-params") - @Headers("hr-path-template: /catalog/test-query-params") + @Headers({"hr-path-template: /catalog/test-query-params", "Accept: application/json"}) CompletableFuture testQueryParams( @Header("Authorization") AuthHeader authHeader, @Body String query, @@ -137,19 +161,19 @@ public interface TestServiceRetrofit { @Query("optionalEnd") Optional optionalEnd); @GET("./catalog/boolean") - @Headers("hr-path-template: /catalog/boolean") + @Headers({"hr-path-template: /catalog/boolean", "Accept: application/json"}) CompletableFuture testBoolean(@Header("Authorization") AuthHeader authHeader); @GET("./catalog/double") - @Headers("hr-path-template: /catalog/double") + @Headers({"hr-path-template: /catalog/double", "Accept: application/json"}) CompletableFuture testDouble(@Header("Authorization") AuthHeader authHeader); @GET("./catalog/integer") - @Headers("hr-path-template: /catalog/integer") + @Headers({"hr-path-template: /catalog/integer", "Accept: application/json"}) CompletableFuture testInteger(@Header("Authorization") AuthHeader authHeader); @POST("./catalog/optional") - @Headers("hr-path-template: /catalog/optional") + @Headers({"hr-path-template: /catalog/optional", "Accept: application/json"}) CompletableFuture> testPostOptional( @Header("Authorization") AuthHeader authHeader, @Body Optional maybeString); diff --git a/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_listenable_future b/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_listenable_future index 1dcb742b9..c2db14cca 100644 --- a/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_listenable_future +++ b/conjure-java-core/src/test/resources/test/api/TestServiceRetrofit.java.retrofit_listenable_future @@ -36,44 +36,56 @@ import retrofit2.http.Streaming; public interface TestServiceRetrofit { /** Returns a mapping from file system id to backing file system configuration. */ @GET("./catalog/fileSystems") - @Headers("hr-path-template: /catalog/fileSystems") + @Headers({"hr-path-template: /catalog/fileSystems", "Accept: application/json"}) ListenableFuture> getFileSystems( @Header("Authorization") AuthHeader authHeader); @POST("./catalog/datasets") - @Headers("hr-path-template: /catalog/datasets") + @Headers({"hr-path-template: /catalog/datasets", "Accept: application/json"}) ListenableFuture createDataset( @Header("Authorization") AuthHeader authHeader, @Body CreateDatasetRequest request, @Header("Test-Header") String testHeaderArg); @GET("./catalog/datasets/{datasetRid}") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}") + @Headers({"hr-path-template: /catalog/datasets/{datasetRid}", "Accept: application/json"}) ListenableFuture> getDataset( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw", + "Accept: application/octet-stream" + }) @Streaming ListenableFuture getRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw-aliased") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw-aliased") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw-aliased", + "Accept: application/json" + }) ListenableFuture getAliasedRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/raw-maybe") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/raw-maybe") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/raw-maybe", + "Accept: application/json" + }) ListenableFuture> maybeGetRawData( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/string-aliased") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/string-aliased") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/string-aliased", + "Accept: application/json" + }) ListenableFuture getAliasedString( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @@ -84,7 +96,10 @@ public interface TestServiceRetrofit { @Header("Authorization") AuthHeader authHeader, @Body RequestBody input); @GET("./catalog/datasets/{datasetRid}/branches") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branches") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branches", + "Accept: application/json" + }) ListenableFuture> getBranches( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @@ -95,27 +110,36 @@ public interface TestServiceRetrofit { * @deprecated use getBranches instead */ @GET("./catalog/datasets/{datasetRid}/branchesDeprecated") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branchesDeprecated") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branchesDeprecated", + "Accept: application/json" + }) @Deprecated ListenableFuture> getBranchesDeprecated( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @GET("./catalog/datasets/{datasetRid}/branches/{branch}/resolve") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/branches/{branch}/resolve") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/branches/{branch}/resolve", + "Accept: application/json" + }) ListenableFuture> resolveBranch( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid, @Path(value = "branch", encoded = true) String branch); @GET("./catalog/datasets/{datasetRid}/testParam") - @Headers("hr-path-template: /catalog/datasets/{datasetRid}/testParam") + @Headers({ + "hr-path-template: /catalog/datasets/{datasetRid}/testParam", + "Accept: application/json" + }) ListenableFuture> testParam( @Header("Authorization") AuthHeader authHeader, @Path("datasetRid") ResourceIdentifier datasetRid); @POST("./catalog/test-query-params") - @Headers("hr-path-template: /catalog/test-query-params") + @Headers({"hr-path-template: /catalog/test-query-params", "Accept: application/json"}) ListenableFuture testQueryParams( @Header("Authorization") AuthHeader authHeader, @Body String query, @@ -137,19 +161,19 @@ public interface TestServiceRetrofit { @Query("optionalEnd") Optional optionalEnd); @GET("./catalog/boolean") - @Headers("hr-path-template: /catalog/boolean") + @Headers({"hr-path-template: /catalog/boolean", "Accept: application/json"}) ListenableFuture testBoolean(@Header("Authorization") AuthHeader authHeader); @GET("./catalog/double") - @Headers("hr-path-template: /catalog/double") + @Headers({"hr-path-template: /catalog/double", "Accept: application/json"}) ListenableFuture testDouble(@Header("Authorization") AuthHeader authHeader); @GET("./catalog/integer") - @Headers("hr-path-template: /catalog/integer") + @Headers({"hr-path-template: /catalog/integer", "Accept: application/json"}) ListenableFuture testInteger(@Header("Authorization") AuthHeader authHeader); @POST("./catalog/optional") - @Headers("hr-path-template: /catalog/optional") + @Headers({"hr-path-template: /catalog/optional", "Accept: application/json"}) ListenableFuture> testPostOptional( @Header("Authorization") AuthHeader authHeader, @Body Optional maybeString);