Как получить ResponseEntity после успешного запроса на удаление - PullRequest
0 голосов
/ 10 июля 2020

После удаления Entity в моей базе данных я возвращаю ResponseEntity из моего Backend (SpringBoot) в свой Frontend (Angular 10). Поэтому я делаю этот HTTP-запрос в моем Angular:

this.http.delete<ResponseEntity<string>>(this.productsPath + '/' + id).subscribe(data => console.log(data.statusCode + data.body));    

И чтобы получить ответ, я создал интерфейс ResponseEntity:

interface ResponseEntity<T> {
headers: { [headerName: string]: string },
body: T,
statusCode: "OK" | "SERVER_ERROR" | "BAD_REQUEST", //etc
statusCodeValue: "200" | "500" | "400" | "404" //etc
}

Теперь в SpringBoot это моя функция удаления , который работает так, как должен:

@DeleteMapping(value = "/products/{id}")
public ResponseEntity<String> deleteProduct(@PathVariable String id) {
    try {
        productService.deleteProduct(Long.parseLong(id));
        return ResponseEntity.status(HttpStatus.OK).body("Product deleted successfully.");
    } catch (Exception e) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Product doesn't exist in Database.");
    }
}

Моя проблема в коде Angular. Полагаю, я действительно не знаю, как получить ответ от Spring? Удаление объекта работает, но ответ, который я регистрирую на консоли в Angular, всегда равен null, поэтому я получаю сообщение об ошибке: ERROR TypeError: data is null

Изменить: этот вопрос SO заключался в том, почему я использовал интерфейс метод: Как передать наблюдаемый ответ локальному объекту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...