изменить CURL и RequestURL в чванство - PullRequest
0 голосов
/ 10 января 2020

У меня есть 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());
        }
...