Установка и использование платформы
REST API: обмен конфиденциальными данными и получение информации о группах доступа¶
Подробнее об обмене конфиденциальными данными и группах доступа см. статью Обмен конфиденциальными данными.
Для реализации этих функций при помощи REST API предусмотрен набор методов группы Privacy
:
POST /privacy/sendData¶
Метод предназначен для отправки в блокчейн конфиденциальных данных, доступных только для участников группы доступа, определенной для этих данных. Запрос метода содержит следующую информацию:
sender
- блокчейн-адрес, от которого должны рассылаться данные (соответствуют значению параметра «privacy.owner-address» в конфигурационном файле ноды);password
- пароль для доступа к закрытому ключу keystore ноды;policyId
- идентификатор группы, которая будет иметь доступ к отправляемым данным;info
- информация об отправляемых данных;data
- строка, содержащая данные в формате base64;hash
- sha256-хеш данных в формате base58.
Примеры запроса и ответа:
POST /privacy/sendDataV2¶
Метод POST /privacy/sendDataV2 аналогичен методу POST /privacy/sendData, однако позволяет приложить файл в окне Swagger, не прибегая к его конверсии в формат base64.
Поле Data
в этой версии метода отсутствует.
Примеры запроса и ответа:
GET /privacy/{policy-id}/recipients¶
Метод предназначен для получения адресов всех участников, записанных в группу {policy-id}
.
В ответе метода возвращается массив строк с адресами участников группы доступа.
Пример ответа:
GET /privacy/{policy-id}/owners¶
Метод предназначен для получения адресов владельцев группы доступа {policy-id}
.
В ответе метода возвращается массив строк с адресами владельцев группы доступа.
Пример ответа:
GET /privacy/{policy-id}/hashes¶
Метод предназначен для получения массива идентификационный хэшей данных, которые привязаны к группе доступа {policy-id}
.
В ответе метода возвращается массив строк с идентификационными хэшами данных группы доступа.
Пример ответа:
GET /privacy/{policyId}/getData/{policyItemHash}¶
Метод предназначен для получения пакета конфиденциальных данных группы доступа {policyId}
по идентификационному хэшу {policyItemHash}
.
В ответе метода возвращается хэш-сумма конфиденциальных данных.
Пример ответа:
GET /privacy/{policyId}/getInfo/{policyItemHash}¶
Метод предназначен для получения метаданных для пакета конфиденциальных данных группы {policyId}
по идентификационному хешу {policyItemHash}
.
В ответе метода возвращаются следующие данные:
sender
- адрес отправителя конфиденциальных данных;policy_id
- идентификатор группы доступа;type
- тип конфиденциальных данных (file
);info
- массив данных о файле:filename
- имя файла;size
- размер файла;timestamp
- временная метка размещения файла в формате Unix Timestamp (в миллисекундах);author
- автор файла;comment
- опциональный комментарий к файлу;hash
- идентификационный хэш конфиденциальных данных.
Пример ответа:
POST /privacy/forceSync¶
Метод предназначен для принудительного получения пакета конфиденциальных данных. Применяется в случае, если транзакция с конфиденциальными данными для группы доступа присутствует в блокчейне, но по какой-либо причине эти данные не были записаны в хранилище конфиденциальных данных ноды. В этом случае метод позволяет принудительно скачать отсутствующие данные.
Запрос метода содержит следующие данные:
sender
- адрес ноды-участника группы доступа, отправляющей запрос;policy
- идентификатор группы доступа;source
- адрес ноды, с которой должны скачиваются отсутствующие данные. В случае, если нода неизвестна, установите параметр наnull
или оставьте поле пустым: в этом случае скачивание файла будет произведено из хранилища первой ноды из списка группы доступа.
Ответ метода содержит поле result
с результатом получения данных и поле message
с текстом возможной ошибки.
В случае успешного получения, возвращается success
, конфиденциальные данные записываются в хранилище ноды.
В случае возникновения ошибки, возвращается error
, в поле message
приводится описание ошибки.
Примеры запроса и ответа:
POST /privacy/getInfos¶
Метод предназначен для получения массива метаданных конфиденциальных данных по идентификатору группы доступа и идентификационному хэшу.
Запрос метода содержит следующие данные:
policiesDataHashes
- массив данных с двумя элементами для каждой отдельной группы доступа:policyId
- идентификатор группы доступа,datahashes
- массив хэшей конфиденциальных данных для получения метаданных по каждому из них.
В ответе метода для каждого отдельного хэша конфиденциальных данных возвращается массив данных, аналогичный ответу метода GET /privacy/{policyId}/getInfo/{policyItemHash}
.
Примеры запроса и ответа: