Angular Spring Boot не может правильно передать переменные в конечную точку - PullRequest
0 голосов
/ 13 мая 2019

В моем приложении Spring Boot App у меня есть конечная точка, которая определяется следующим образом:

startFunctionality(@PathVariable Long clientId,@PathVariable Long projectId,@PathVariable Long functionalityId, @RequestBody(required=false) Map<String,Object> variables )

Я хочу передать карту из Angular.Я создаю его следующим образом:

 let variables = new Map();
     variables.set("A",1);
     variables.set("B",2);

Затем я создаю свой запрос следующим образом:

 let data = {
        "variables":variables
      }
      const request: HttpRequestInterface = {
        apiUrl: 'clients/' + clientId + '/projects/' + projectId + '/functionalities/' + functionalityId + '/start',
        body: data
      };
      return this.httpService.get(request);

Запрос get просто такой:

public get(httpRequest: HttpRequestInterface): Observable<any> {
    const options = this.getBaseOptions(httpRequest);
    const observable = this.httpClient.get(this.apiBaseUrl + httpRequest.apiUrl, options);
    return observable.pipe(
      retryWhen((errors: any) => this.handleErrorsOnRequest(errors)),
      map((response: any) => this.getResponseData(response))
    );
  }

Поскольку тело запроса variables не требуется, я выполняю проверку внутри метода для конечной точки.Проблема в том, что даже если я установлю тело с помощью своих переменных, конечная точка получит значение NULL.Если я пытаюсь отправить переменные с помощью Postman, конечная точка получает их правильно, они не равны NULL.

1 Ответ

0 голосов
/ 14 мая 2019

Попробуйте установить тело запроса следующим образом:

 let data = {
        "variables":variables
      }
      const request: HttpRequestInterface = {
        apiUrl: 'clients/' + clientId + '/projects/' + projectId + '/functionalities/' + functionalityId + '/start',
        body: JSON.stringify(data);
      };
      return this.httpService.get(request);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...