github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/openapi-generator/templates/java/libraries/rest-assured/ApiClient.mustache (about)

     1  {{>licenseInfo}}
     2  
     3  package {{invokerPackage}};
     4  
     5  import {{apiPackage}}.*;
     6  
     7  {{#imports}}import {{import}};
     8  {{/imports}}
     9  {{^fullJavaUtil}}
    10  import io.restassured.builder.RequestSpecBuilder;
    11  import java.util.function.Consumer;
    12  import java.util.function.Supplier;
    13  
    14  import static io.restassured.config.ObjectMapperConfig.objectMapperConfig;
    15  import static io.restassured.config.RestAssuredConfig.config;
    16  import static {{invokerPackage}}.{{#gson}}GsonObjectMapper.gson{{/gson}}{{#jackson}}JacksonObjectMapper.jackson{{/jackson}};
    17  
    18  {{/fullJavaUtil}}
    19  
    20  public class ApiClient {
    21      {{#basePath}}
    22      public static final String BASE_URI = "{{basePath}}";
    23      {{/basePath}}
    24  
    25      private final Config config;
    26  
    27      private ApiClient(Config config) {
    28          this.config = config;
    29      }
    30  
    31      public static ApiClient api(Config config) {
    32          return new ApiClient(config);
    33      }
    34  
    35       {{#apiInfo}}
    36       {{#apis}}
    37      public {{classname}} {{classVarName}}() {
    38          return {{classname}}.{{classVarName}}(config.reqSpecSupplier);
    39      }
    40       {{/apis}}
    41       {{/apiInfo}}
    42  
    43      public static class Config {
    44          private Supplier<RequestSpecBuilder> reqSpecSupplier = () -> new RequestSpecBuilder()
    45                  {{#basePath}}.setBaseUri(BASE_URI){{/basePath}}
    46                  .setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper({{#gson}}gson(){{/gson}}{{#jackson}}jackson(){{/jackson}})));
    47  
    48          /**
    49           * Use common specification for all operations
    50           * @param supplier supplier
    51           * @return configuration
    52           */
    53          public Config reqSpecSupplier(Supplier<RequestSpecBuilder> supplier) {
    54              this.reqSpecSupplier = supplier;
    55              return this;
    56          }
    57  
    58          public static Config apiConfig() {
    59              return new Config();
    60          }
    61      }
    62  }