【问题标题】:Parameters not getting passed in REST call. But works fine in postman参数未在 REST 调用中传递。但在邮递员中工作正常
【发布时间】:2018-08-14 03:02:20
【问题描述】:

我正在 getPlanPreferenceRules 端点下方执行集成测试,并且参数值未传递给首选项管理服务。但是,当我尝试在邮递员中进行相同的测试时,它工作正常。

以下是执行 REST 调用的代码。

@Override
    public ServiceClientResponse<GetPlanPrefRulesResponse> getPlanPrefereneRules(GetPlanPrefRulesRequest parameters,
            String currentUserId, String correlationId, String requestorApp) {

        RequestEntity<?> targetRequest = 
                createGetPlanPrefRulesRequest(parameters, currentUserId, correlationId, requestorApp);

        return this.restClientService.exchangeAndParse(
                this.getRulesRestTemplate, targetRequest, new TypeReference<GetPlanPrefRulesResponse>(){});
    }

下面是Spring控制器服务:

@GetMapping(value = PATH_PLAN_PREF_RULES)
    public ResponseEntity<?> getPlanPrefRules(
            @Valid  final GetPlanPrefRulesRequest request )
    {
        log.info("getPlanPrefRulesDataRequest: Entering: GetPlanPrefRulesRequest={}", request); 
        return ResponseEntity.ok(this.getPlanPreferenceRulesService.getPlanPrefRules(request));
    }

以下是创建 REST 调用请求的代码:

protected RequestEntity<?> createGetPlanPrefRulesRequest(
            final GetPlanPrefRulesRequest parameters,
            final String currentUserId,
            final String correlationId,
            final String requestorApp)
    {
        URI targetUri = UriComponentsBuilder.fromUri(this.preferencesServiceUri)
                .path(this.rulesPath).build().toUri();

        HttpHeaders targetHeaders = createHeaders(
                currentUserId,
                correlationId,
                requestorApp);

        return new RequestEntity<>(
                parameters,
                targetHeaders,
                HttpMethod.GET,
                targetUri);
    }

我不确定我错过了什么。任何意见表示赞赏!

【问题讨论】:

    标签: java rest spring-boot controller endpoint


    【解决方案1】:

    更新这个方法

    @GetMapping(value = PATH_PLAN_PREF_RULES)
        public ResponseEntity<?> getPlanPrefRules(
                @RequestBody @Valid  final GetPlanPrefRulesRequest request )
        {
            log.info("getPlanPrefRulesDataRequest: Entering: GetPlanPrefRulesRequest={}", request); 
            return ResponseEntity.ok(this.getPlanPreferenceRulesService.getPlanPrefRules(request));
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-18
      • 2017-08-16
      • 2020-05-25
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      相关资源
      最近更新 更多