0

Работа с телефонной книгой. Пишу серверную часть, хочу созданного пользователя изменить его данные(имя и номер), добавить, удалить, редактировать контакт. Как это сделать? Вот мой код:

 // добавить пользователя
@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);
}

И да, все ли верно я делаю? Есть просто подозрения, что с таким кодом меня отправят в пешее романтическое...

задан 19 дек. 2019 в 20:27
1
  • Скажите в какую сторону идти и что читать, хотя бы. Commented 19 дек. 2019 в 20:29

1 ответ 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
9
  • Отлично! Но есть одна проблема... что бы спринг нормально работал, то кажется надо создавать интерфейс, верно? Как бы вы сделали приложение где есть пользователи и у них есть телефонные книги с контактами? Я вот создал классы, пользователь и контакты. когда пользователь добавляется то инкрементиуется айди, добавляется пустая телефонная книга. потом если захочу до пользователю в телефонную книгу добавляю/редактирую/удаляю контакт. И вот по коду который вы писали, я должен сделать еще два класса(или интерфейсы?) которые могут редактировать/добавлять/удалять пользователя и контакты. Commented 20 дек. 2019 в 10:10
  • Буду крайне благодарен, если сможете направить меня на путь истинный. Вожусь с этим "приложением" уже долгое время. Commented 20 дек. 2019 в 10:11
  • 1
    Ни сразу понял что у каждого конкретного пользователя своя телефонная книга должна быть. Я отталкивался от корпоративной системы, где по сути телефонная книга одна на всех. Вам надо определиться с сущностями, тут надо немного больше знать о системе которую вы пишите. Что еще она должна хранить и уметь делать. Commented 20 дек. 2019 в 16:38
  • Список пользователей и у каждого из них есть телефонная книга, где есть номера. Также у каждого пользователя есть уникальный айди, как и у контактов. Я должен уметь каждого пользователя добавлять, удалять, редактировать, находить, добавлять новый контакт в его справочник. Также с контактами(добавлять, удалять, редактировать, находить). Метода я уже написал, но проблема оказалась в сущностях! Я сделал только три класса(контакт, пользователь, маин). Списки пользователй инкрементирутся в конструкторе. Commented 20 дек. 2019 в 19:34
  • Я вот пытаюсь подружиться со спрингом. Но что-то не получается, а именно с внедрениями Commented 20 дек. 2019 в 19:36

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.