Spring. Rest API. Java

111
08 января 2022, 21:10

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

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

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

Answer 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;
       }
       ....
   }

Думаю, общее направление понятно.

READ ALSO
как сопоставить атрибуты метода

как сопоставить атрибуты метода

Есть задача, я её приложил к вопросу, суть в том что есть заказы

169
Алгоритм набора слов на аналоговой клавиатуре телефона

Алгоритм набора слов на аналоговой клавиатуре телефона

На собеседовании задали задачу: имеется клавиатура аналогового телефона от 0 до 9, где каждой цифре соответствуют три буквы, 1 - абв, 2 - где и тд

276
hibernate + маппинг без сущностей?

hibernate + маппинг без сущностей?

Я разбираю старый проект и нашел интересную вещь, которую не понимаю

117
Как получить сообщения из чата в Slack

Как получить сообщения из чата в Slack

Необходимо получить сообщения из определенного чата Делаю запрос:

92