Весеннее облако симулирует поведение, когда параметр пуст - PullRequest
1 голос
/ 27 января 2020

Я пишу симулированный клиент

@RequestMapping(
      path = "/TrackingServlet?CompanyName=Test&UserName=&BranchCode=",
      method = RequestMethod.GET,
      produces = MediaType.APPLICATION_JSON_VALUE
      )
  ResponseEntity<String> getInfo(
      @RequestParam("DocumentNumbers") String bill);

, когда он вызывается, URL становится /TrackingServlet?CompanyName=Test&UserName&BranchCode, исключая символ =, но API нуждается в нем в этом формате, так как это сторонний API мы не можем изменить его.

Также попытался

@RequestMapping(
      path = "/TrackingServlet?CompanyName=Test&UserName=",
      method = RequestMethod.GET,
      produces = MediaType.APPLICATION_JSON_VALUE
      )
  ResponseEntity<String> getInfo(
      @RequestParam("DocumentNumbers") String bill,
      @RequestParam(name = "BranchCode", required = true) String BranchCode);

  default ResponseEntity<String> getInfo(String bill) {
    return getInfo(bill, "");
  }

, у этого даже не будет параметра BranchCode

Я использую org.springframework.cloud:spring-cloud-starter-openfeign:2.1.1.RELEASE Spring boot version 2.1.4 .RELEASE

есть ли какие-либо способы или обходные пути для сохранения пустых параметров в URL как есть?

1 Ответ

0 голосов
/ 28 января 2020

Если ваш URL-адрес http://localhost:8080/trackingServlet/testing?userName=pratik Используйте симулированный клиент:

@FeignClient(name = "tracking-servlet-service")
public interface TestFeignClient {

        @GetMapping("/trackingServlet/testing")
        public String getQueryParam(@RequestParam("userName") String name);

}

Если у вас есть 2 или более параметра, вы можете добавить их в @RequestParam

Например, URL http://localhost:8080/trackingServlet/testing?userName=pratik&companyName=Test

 @FeignClient(name = "tracking-servlet-service")
    public interface TestFeignClient {

            @GetMapping("/trackingServlet/testing")
            public String getQueryParam(@RequestParam("userName") String name, 
                                        @RequestParam("companyName") String companyName);

    }
...