У меня есть 2 типа клиентов, которые используют мои сервисы, такие как BaseURL / api / MYRandomApi
1) один набор клиентов использует это через amazon aws apigw. Так что мой URL APIGW имеет «api» в качестве этапа. Так что он работает как BaseURL / api / MyRandomApi
Мой java код начинается с myRandomAPI следующим образом:
package com.arun.controller;
@RestController
public class ArunController {
@ApiOperation(value = "Convert a list of points from source CRS to target CRS", tags = {
Constants.APITAG_COORDINATEOPERATIONS })
@ApiResponses(value = { @ApiResponse(code = 200, message = "Success"),
@ApiResponse(code = 400, message = "Invalid Request URI or Header, or unsupported parameter", response = ErrorResonse.class),
@ApiResponse(code = 404, message = "The specified resource was not found", response = ErrorResonse.class),
@ApiResponse(code = 500, message = "Unexpected error occured.", response = ErrorResonse.class) })
@PostMapping(value = "/MyRandomApi", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE, headers = "X-API-VERSION=1")
public Response<CRSConversionResult> convertPoints(@Valid @RequestBody ConvertCrsVo convertCrsVo) {
return Response.ok(service.convertCRS(convertCrsVo));
}
}
Работает нормально, без ошибок.
2 ) У меня есть отдельный набор клиентов, которые используют его через URL-адреса swapger NATIP DNS ie.
В swagger приведенный выше API выглядит как BaseURL / myRandomApi
Я хочу, чтобы ключевое слово "api" быть доступным как для множества клиентов. Есть какой-либо способ сделать это ?
Есть предложения? Если да, пожалуйста, предоставьте мне несколько синтаксисов, так как я новичок в чванстве и AWS. Спасибо за помощь заранее
Конфигурация PF swagger ниже:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Geo transformation service")
.description("")
.license("")
.licenseUrl("")
.termsOfServiceUrl("")
.version("0.0.1")
.contact("admin")
.build();
}
@Bean
public Docket customImplementation(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("geodetic-api-1.0")
.select()
.apis(RequestHandlerSelectors.basePackage("com.Arun.controller"))
.apis(p -> {
HeadersRequestCondition headersRequestCondition = new HeadersRequestCondition("X-API-VERSION=1");
if (p.getRequestMapping().getHeadersCondition().equals(headersRequestCondition))
return true;
return false;
})
.paths(path->path.contains("/"))
.build()
.directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
.directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
.apiInfo(apiInfo());
}