Sobes.tech
Назад к вопросам
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.