Форум программистов, компьютерный форум CyberForum.ru

Java EE (J2EE)

Войти
Регистрация
Восстановить пароль
 
 
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
#1

REST и контроллер - Java EE

22.12.2016, 12:37. Просмотров 738. Ответов 30

Добрый день.
Обьясните, пожалуйста, как писать контролер или вообще как то без него при использовании REST.
т.е. например идет запрос GET user/1 нужен конкретно контроллер:
Java
1
@RequestMapping(value ="user/1", method = RequestMethod.GET)
но не к каждому же запросу по номеру юзера писать свой контролер user/1 user/2 .... user/N ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Любопытный
117 / 117 / 21
Регистрация: 19.10.2012
Сообщений: 377
22.12.2016, 12:47     REST и контроллер #2
Java
1
2
3
4
@RequestMapping(value = " /user/{userId}", method=RequestMethod.GET)
public String getMethod(@PathVariable Integer userId){
//do something
}
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
22.12.2016, 12:51  [ТС]     REST и контроллер #3
а RESTFull чем будет отличаться?)
Любопытный
117 / 117 / 21
Регистрация: 19.10.2012
Сообщений: 377
22.12.2016, 12:55     REST и контроллер #4
werrt,
Не понял вопрос.
От чего отличаться?
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
22.12.2016, 12:59  [ТС]     REST и контроллер #5
ну есть как я понял REST, а есть RESTFull
LeX
Модератор
193 / 193 / 49
Регистрация: 30.06.2010
Сообщений: 743
22.12.2016, 15:21     REST и контроллер #6
werrt, тынц
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
04.01.2017, 01:00  [ТС]     REST и контроллер #7
а правильно я понимаю, что, например, на запрос GET user/1 я должен вернуть данные типа XML или JSON. А на запрос user/1 но методом POST я на контролере получаю данные типа XML или JSON, с которыми что уже делаю, например преобразую в обьект и тд?
LeX
Модератор
193 / 193 / 49
Регистрация: 30.06.2010
Сообщений: 743
04.01.2017, 06:23     REST и контроллер #8
werrt, POST это создание, ты описываешь обновление, т.е. PUT. Читай
KEKCoGEN
Модератор
Эксперт Java
1876 / 1754 / 426
Регистрация: 28.12.2010
Сообщений: 7,106
04.01.2017, 09:39     REST и контроллер #9
LeX, там все очень канонично описано конечно, но на практике, всякие конторы специализирующиеся на web security, говорят не использовать методов кроме GET \ POST. При таком раскладе POST берет на себя ф-ции PUT и DELETE
LeX
Модератор
193 / 193 / 49
Регистрация: 30.06.2010
Сообщений: 743
05.01.2017, 22:12     REST и контроллер #10
KEKCoGEN, странно, ни разу не сталкивался с таким)

Добавлено через 1 минуту
Но это уже не REST) это просто апи)
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
22.01.2017, 01:05  [ТС]     REST и контроллер #11
а как создать нового юзера через REST если отправляется форма в виде заполненного обьекта юзер? Ведь сначало нужно пустой обьект юзер отправить на страницу для заполнения.

Добавлено через 21 минуту
или же отправлять со страницы нужно преобразованую в XML/JSON форму, которую пользователь заполняет. А далее на контролере парсить из нее обьект юзер и сохранять в базу?
xoraxax
541 / 538 / 110
Регистрация: 05.07.2013
Сообщений: 2,498
Завершенные тесты: 1
22.01.2017, 01:29     REST и контроллер #12
Цитата Сообщение от werrt Посмотреть сообщение
или же отправлять со страницы нужно преобразованую в XML/JSON форму, которую пользователь заполняет. А далее на контролере парсить из нее обьект юзер и сохранять в базу?
да.
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
24.01.2017, 19:25  [ТС]     REST и контроллер #13
такой вот вопрос в продолжение:
контролер, например, получить user по id (/user/id) выглядит как :
Java
1
2
3
4
5
6
7
@Controller
@RequestMapping("/user")
public class UserControllerRest {@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = {"application/xml; charset=UTF-8"})
    @Transactional
    public
    @ResponseBody
    String getUser(@PathVariable int id, Model model) { return  какую нить XML}
а если нужно получать user по другим атрибутам, по имени (name) например? Чтобы в одном мапинге было?
KEKCoGEN
Модератор
Эксперт Java
1876 / 1754 / 426
Регистрация: 28.12.2010
Сообщений: 7,106
24.01.2017, 21:00     REST и контроллер #14
werrt, передавайте имя аттрибута в запросе и ищите по нему.
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
25.01.2017, 04:49  [ТС]     REST и контроллер #15
т.е запрос на контролер будет типа /user?name="tom" или /user?id="1" ?
LeX
Модератор
193 / 193 / 49
Регистрация: 30.06.2010
Сообщений: 743
25.01.2017, 06:01     REST и контроллер #16
Апи обычно делают по уникальному полю, т.е. id или логин. Остальное делается через поиск, например /user/search?name=alex&surname=fox. Соответсвенно в контроллере на сколько помню потом можно сделать @RequestParam Map<Sting, String> searchParams. Результатом вызова такого апи будет коллекция, пусть даже с 1 объектом или вообще пустая
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
26.01.2017, 14:32  [ТС]     REST и контроллер #17
LeX, типа вот так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Controller
@RequestMapping("/user")
public class UserControllerRest {
 
@RequestMapping(value = "/search", method = RequestMethod.GET, produces = {"application/xml; charset=UTF-8"})
    @ResponseStatus(HttpStatus.OK)
    @Transactional
    public
    @ResponseBody
    String getResultSearch(@RequestParam Map<String, String> searchParams){
 
        return null;
    }
}
LeX
Модератор
193 / 193 / 49
Регистрация: 30.06.2010
Сообщений: 743
26.01.2017, 15:03     REST и контроллер #18
werrt, да
werrt
1 / 1 / 0
Регистрация: 07.02.2008
Сообщений: 206
01.02.2017, 18:16  [ТС]     REST и контроллер #19
А правильно делать мапинг типа ?

@Controller
@RequestMapping(value={"/user", "*/user"})
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2017, 09:38     REST и контроллер
Еще ссылки по теме:

Java EE Spring, Rest, Json, LocalData
Spring + hibenate, REST Java EE
REST form validation Java EE
Java EE Книги по Jersey rest web services
Java EE Spring Boot REST сервис

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
LeX
Модератор
193 / 193 / 49
Регистрация: 30.06.2010
Сообщений: 743
02.02.2017, 09:38     REST и контроллер #20
да, но тут я обычно говорю что если такая необходимость появилась, то что-то не то с архитектурой
Yandex
Объявления
02.02.2017, 09:38     REST и контроллер
Ответ Создать тему
Опции темы

Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru