Отправка запроса на удаление на REST сервер

443
26 ноября 2016, 19:13

Клиент шлет запрос на REST сервер на удаление записи. Исполнение на Angular

    $scope.deleteItem = function(id) {
            var url = 'http://localhost:8080/api/message/' + id;
            var config = { headers: {'Content-Type': 'application/json'}};
            $http.delete(url, config).then(function(response){
                console.log(response);
            }, function(response){
                console.log(response);
            });

На стороне сервера Spring boot

    @RequestMapping(
            value = "api/message/{id}",
            method = RequestMethod.DELETE,
            consumes = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<?> deleteMessage(@PathVariable Long id) {
        if (!messageService.delete(id)) {
            throw  new DataNotFoundException("Data with id=" + id + " not found.");
        }
        return ResponseEntity.ok("Successfully deleted user");
    }

Возвращает текст, это заглушка, на самом деле я пока не знаю, что правильно возвращать в таком случае, по идеи true, хотя Angular может ответ проверить и со строкой == "готово". В общем если дадите доп. совет то спасибо.

Сейчас получаю ответ на стороне сервера:

Resolved exception caused by Handler execution: org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'null' not supported

лог в консоль браузера:

DELETE http://localhost:8080/api/message/1 415 
config: Object 
data: Object  
headers: (d)  
status: 415  
statusText: ""

Что я делаю не так?

Answer 1

1) запрос на маппер так никогда не пишется 2) ссылка на конкретный реквест контроллер должна иметь вид - /api/message/ + id 3) взгляните на мой пример регистрации пользователя, должен вам помочь с вашим примером

    $.ajax({
        type: "POST",
        url: "/api/account",
        data: JSON.stringify(reg),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $.gritter.add({
                title: '<i class="fa fa-info-circle"></i> Поздавляем',
                text: 'Вы успешно зарегистрированы!',
                sticky: true,
                time: '',
                class_name: 'gritter-info'
            });
            setTimeout(function() {
                window.location = "/login.jsp";
            }, 2000);
        },
        error: function (jqXHR, status) {
            $('.login-wrapper').removeClass('fadeOutUp');
            var data = jqXHR.responseJSON;
            $.gritter.add({
                title: '<i class="fa fa-times-circle"></i> Ой, произошла ошибка!',
                text: data.msg,
                sticky: false,
                time: '',
                class_name: 'gritter-danger'
            });
        }
    });
Answer 2

Мое решение: серверная сторона

//Delete the item
@RequestMapping(
        value = "api/message/{id}",
        method = RequestMethod.DELETE)
public ResponseEntity<?> deleteMessage(@PathVariable Long id) {
    if (!messageService.delete(id)) {
        throw  new DataNotFoundException("Data with id=" + id + " not found.");
    }
    return new ResponseEntity<>(HttpStatus.OK);
}

клиентская сторона

$scope.deleteItem = function (id) {
    $http.delete($scope.url + 'message/' + id).success(function (response) {
        делаем что то, например удаляем из массива или перезагружаем страницу
    }, function (response) {
        console.log("Return error");
    });
}
READ ALSO
Подключение к mysql (написание интерфейса)

Подключение к mysql (написание интерфейса)

Помогите пожалуйста разобраться с подключением к Базе данныхнужно сделать интерфейс и чтобы по нажатию кнопки программа подключалась к базе,...

202
сортировка используя Sort

сортировка используя Sort

мне в методе нужно реализовать сортировку List используя объект класса Sort, но я сделал используя обычный метод sort, но это не подходит, объясните...

305
тип generic-параметр

тип generic-параметр

Интересует как можно определить тип generic-параметра с помощью Reflection в Java? И есть ли для этого другие методы?

225
Как подставить символы типа String в выражение?

Как подставить символы типа String в выражение?

Как подставить символы типа String в выражение

200