Работа с телефонной книгой. Пишу серверную часть, хочу созданного пользователя изменить его данные(имя и номер), добавить, удалить, редактировать контакт. Как это сделать? Вот мой код:
// добавить пользователя
@RequestMapping(value = "user/add", method=RequestMethod.GET)
public String addUs(@RequestParam String name, @RequestParam String number){
new User(name, number);
return "Пользователь "+ name +" добавлен!";
}
// редактировать пользователя пока не работает
@RequestMapping(value = "user/id{id}/edit{name}{number}", method=RequestMethod.GET)
public String editU(@RequestParam int id,@RequestParam String name, @RequestParam String number){
return user.editUser(name, number);
}
// добавление контакта в телефонную книгу пользователя
@RequestMapping(value = "user/id/addcontact", method=RequestMethod.GET)
public String addContact(@RequestParam String name, @RequestParam String number){
return addContact(name, number);
}
И да, все ли верно я делаю? Есть просто подозрения, что с таким кодом меня отправят в пешее романтическое...
-
Скажите в какую сторону идти и что читать, хотя бы.atata174– atata1742019年12月19日 20:29:09 +00:00Commented 19 дек. 2019 в 20:29
1 ответ 1
Примерно так
@RestController
@RequestMapping("/users")
public class UserController{
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User get(@PathVariable id){
return userService.getUser(id);
}
// добавить пользователя
@PostMapping("/")
public User add(@RequestBody User u){
return userService.create(u.getName(), u.getNumber());
}
// редактировать пользователя пока не работает
@PutMapping("/{id}")
public User edit(@PathVariable int id, User u){
return userService.editUser(u.getName(), u.getNumber());
}
@DeleteMapping("/{id}")
public void delete(@PathVariable id){
userService.delete(id);
}
}
Телефонная книга это уже другая сущность, и другой контроллер
@RestController
@RequestMapping("/phoneBook")
public class PhoneBookController{
@Autowired
private PhoneBookService phoneBookService;
// добавление контакта в телефонную книгу пользователя
@PostMapping("/")
public User add(@RequestBody User u){
phoneBoorService.add(u);
return contact;
}
....
}
Думаю, общее направление понятно.
ответ дан 20 дек. 2019 в 4:51
Z.John
3,2981 золотой знак9 серебряных знаков17 бронзовых знаков
-
Отлично! Но есть одна проблема... что бы спринг нормально работал, то кажется надо создавать интерфейс, верно? Как бы вы сделали приложение где есть пользователи и у них есть телефонные книги с контактами? Я вот создал классы, пользователь и контакты. когда пользователь добавляется то инкрементиуется айди, добавляется пустая телефонная книга. потом если захочу до пользователю в телефонную книгу добавляю/редактирую/удаляю контакт. И вот по коду который вы писали, я должен сделать еще два класса(или интерфейсы?) которые могут редактировать/добавлять/удалять пользователя и контакты.atata174– atata1742019年12月20日 10:10:45 +00:00Commented 20 дек. 2019 в 10:10
-
Буду крайне благодарен, если сможете направить меня на путь истинный. Вожусь с этим "приложением" уже долгое время.atata174– atata1742019年12月20日 10:11:47 +00:00Commented 20 дек. 2019 в 10:11
-
1Ни сразу понял что у каждого конкретного пользователя своя телефонная книга должна быть. Я отталкивался от корпоративной системы, где по сути телефонная книга одна на всех. Вам надо определиться с сущностями, тут надо немного больше знать о системе которую вы пишите. Что еще она должна хранить и уметь делать.Z.John– Z.John2019年12月20日 16:38:37 +00:00Commented 20 дек. 2019 в 16:38
-
Список пользователей и у каждого из них есть телефонная книга, где есть номера. Также у каждого пользователя есть уникальный айди, как и у контактов. Я должен уметь каждого пользователя добавлять, удалять, редактировать, находить, добавлять новый контакт в его справочник. Также с контактами(добавлять, удалять, редактировать, находить). Метода я уже написал, но проблема оказалась в сущностях! Я сделал только три класса(контакт, пользователь, маин). Списки пользователй инкрементирутся в конструкторе.atata174– atata1742019年12月20日 19:34:43 +00:00Commented 20 дек. 2019 в 19:34
-
Я вот пытаюсь подружиться со спрингом. Но что-то не получается, а именно с внедрениямиatata174– atata1742019年12月20日 19:36:48 +00:00Commented 20 дек. 2019 в 19:36
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопросlang-java