Я работаю над приложением, включающим CRUD-функциональность. Я использую Spring для реализации бэкэнда, Angular для фронтэнда. Во внешнем интерфейсе я использую http-клиент Angular, подобный этому, для удаления объекта (для краткости следующий код сокращен):
Компонент:
export class RecipeComponent implements OnInit {
constructor(private recipeService : RecipeService) { }
deleteElement (id : number) {
this.recipeService.deleteRecipe(id).subscribe();
}
}
Сервис :
export class RecipeService {
deleteRecipe (id : number) : Observable<{}> {
return this.http.delete('http://localhost:8080/recipe/' + id);
}
constructor( private http: HttpClient ) { }
}
При выполнении функции я могу найти запрос http-удаления на вкладке сети:
Spring Controller выглядит (сокращенно) вот так:
@ControllerAdvice
@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping(path="/recipe")
public class RESTController {
@Autowired
private RecipeRepository recipeRepository;
@DeleteMapping(path="/{id}")
public @ResponseBody ResponseEntity deleteRecipe (@RequestBody Recipe deletedRecipe, @PathVariable("id") int id) {
try {
[...]
}
} catch (RecipeNotFoundException e) {
[...]
}
}
}
Тем не менее, мой бэкэнд не получает запрос. Странно то, что Posts или Gets работают нормально.
Может кто-нибудь указать мне правильное направление?
Спасибо и всего наилучшего!