Назад к вопросам
Senior
1
Домашнее задание №2: Спроектировать REST API для социальной сети ВКонтакте со следующими операциями: • добавление и удаление друзей; • просмотр друзей пользователя; • просмотр анкеты пользователя; • публикация поста в ленту; • загрузка медиа файлов для постов; • просмотр ленты постов (домашней и пользователей); • просмотр диалогов и чатов пользователя; • отправка и чтение сообщений в диалогах и чатах. addFriend(post) POST /users/{id}/friends deleteFriend(delete) DELETE /users/{id}/friends/{friends_id} getUserFriends(get) GET /users/{id}/friends getUserForm(get) GET /users/{id}/profile createPost(post) POST /posts uploadMediaFile(post) POST /media getFeed(home/user) GET /feed GET /users/{id}/feed getDialogues(get) GET /dialogs sendMessage(post) POST /dialogs/{id}/messages getMessage(get) GET /dialogs/{id}/messages
Компании, где спрашивали
МВидео/эльдорадо
Ответ от нейросети
sobes.tech AI
Проектирование REST API для социальной сети ВКонтакте с указанными операциями можно представить следующим образом:
-
Добавление друга:
- Метод: POST
- Путь:
/users/{id}/friends - Тело запроса: ID пользователя, которого добавляют в друзья
-
Удаление друга:
- Метод: DELETE
- Путь:
/users/{id}/friends/{friend_id}
-
Просмотр друзей пользователя:
- Метод: GET
- Путь:
/users/{id}/friends
-
Просмотр анкеты пользователя:
- Метод: GET
- Путь:
/users/{id}/profile
-
Публикация поста:
- Метод: POST
- Путь:
/posts - Тело запроса: содержимое поста, ID автора
-
Загрузка медиа файлов:
- Метод: POST
- Путь:
/media - Тело запроса: файл (multipart/form-data)
-
Просмотр ленты постов:
- Домашняя лента:
- Метод: GET
- Путь:
/feed
- Лента конкретного пользователя:
- Метод: GET
- Путь:
/users/{id}/feed
- Домашняя лента:
-
Просмотр диалогов и чатов:
- Метод: GET
- Путь:
/dialogs
-
Отправка сообщений:
- Метод: POST
- Путь:
/dialogs/{id}/messages - Тело запроса: текст сообщения, вложения
-
Чтение сообщений:
- Метод: GET
- Путь:
/dialogs/{id}/messages
Такой дизайн соответствует REST принципам, где ресурсы представлены в виде URL, а методы HTTP определяют действие.
Пример запроса на добавление друга (curl):
curl -X POST https://api.vk.com/users/123/friends -d '{"friend_id":456}' -H "Content-Type: application/json"
Это позволит клиенту добавить пользователя с ID 456 в друзья пользователя с ID 123.