SHiNE-server/Dev_Docs/API/11_Connections_API.md

3.1 KiB
Raw Permalink Blame History

API для разработчиков: связи пользователей

Документ описывает операции чтения и записи пользовательских связей.

Текущие операции:

  • GetFriendsLists
  • ListContacts
  • GetUserConnectionsGraph
  • AddCloseFriend

1. GetFriendsLists

Запрос

{
  "op": "GetFriendsLists",
  "requestId": "friends-001",
  "payload": {
    "login": "alice"
  }
}

Успешный ответ

{
  "op": "GetFriendsLists",
  "requestId": "friends-001",
  "status": 200,
  "ok": true,
  "payload": {
    "login": "Alice",
    "out_friends": ["Bob"],
    "in_friends": ["Kate"]
  }
}

2. ListContacts

ListContacts использует текущую авторизованную сессию. В payload нет дополнительных полей.

Запрос

{
  "op": "ListContacts",
  "requestId": "contacts-001",
  "payload": {
  }
}

Успешный ответ

{
  "op": "ListContacts",
  "requestId": "contacts-001",
  "status": 200,
  "ok": true,
  "payload": {
    "login": "Alice",
    "contacts": ["Bob", "Kate"]
  }
}

3. GetUserConnectionsGraph

Запрос

{
  "op": "GetUserConnectionsGraph",
  "requestId": "graph-001",
  "payload": {
    "login": "alice"
  }
}

Успешный ответ

{
  "op": "GetUserConnectionsGraph",
  "requestId": "graph-001",
  "status": 200,
  "ok": true,
  "payload": {
    "login": "Alice",
    "outFriends": ["Bob"],
    "inFriends": ["Kate"],
    "outContacts": [],
    "inContacts": [],
    "outFollows": [],
    "inFollows": [],
    "outSpouses": [],
    "inSpouses": [],
    "outParents": [],
    "inParents": [],
    "outChildren": [],
    "inChildren": [],
    "outSiblings": [],
    "inSiblings": [],
    "outKnownPersons": [],
    "inKnownPersons": [],
    "outShineConfirmed": [],
    "inShineConfirmed": [],
    "outShineSeen": [],
    "inShineSeen": [],
    "parents": [],
    "children": [],
    "siblings": [],
    "spouses": [],
    "allUsers": [
      {
        "login": "Bob",
        "official": false,
        "shine": true,
        "officialLabel": "",
        "shineLabel": "shine",
        "avatar": { "ar": "..." }
      }
    ]
  }
}

Примечание

Поля known_person, shine_confirmed, shine_seen в UI считаются недопроверенной зоной проекта; при изменениях этой логики нужна ручная end-to-end проверка.


4. AddCloseFriend

AddCloseFriend использует текущую авторизованную сессию как источник login.

Запрос

{
  "op": "AddCloseFriend",
  "requestId": "close-friend-001",
  "payload": {
    "toLogin": "bob"
  }
}

Успешный ответ

{
  "op": "AddCloseFriend",
  "requestId": "close-friend-001",
  "status": 200,
  "ok": true,
  "payload": {
    "login": "Alice",
    "toLogin": "Bob",
    "relation": "close_friend"
  }
}