Sobes.tech
Senior

Devoir n°2 : Concevoir une API REST pour un réseau social VKontakte avec les opérations suivantes : • ajout et suppression d'amis ; • voir les amis de l'utilisateur ; • voir le profil de l'utilisateur ; • publier un post dans le fil ; • télécharger des fichiers médias pour les posts ; • voir le fil de posts (d'accueil et des utilisateurs) ; • voir les dialogues et chats de l'utilisateur ; • envoyer et lire des messages dans les dialogues et chats. 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 IA

Réponse de l'IA

Проектирование 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.