Как удалить ресурсы / участников, используя REST API в Hyperledger Composer? - PullRequest
0 голосов
/ 10 октября 2018

Я развернул свою бизнес-сеть с помощью composer-rest-server и могу вызывать API с помощью почтальона.

На данный момент у меня есть жестко запрограммированные идентификаторы для участников / активов, поэтому я не могу сделать еще один вызов POSTпоскольку объекты с идентификатором уже существуют.

Где я могу удалить существующих участников / активы?На игровой площадке композитора на странице тестирования была кнопка удаления, обеспечивающая эту функциональность.

Ответы [ 3 ]

0 голосов
/ 10 октября 2018

используя javascript composer-client, вы можете сделать следующее:

const { BusinessNetworkConnection } = require('composer-client');

const participantRegistry = await BusinessNetworkConnection.getParticipantRegistry(registry name space, type);

await participantRegistry.remove(registry name space#participantId);

const assetRegistry = await BusinessNetworkConnection.getAssetRegistry(registry name space);

await assetRegistry.remove(registry name space#asset id);

или даже можете выполнить больше

   await assetRegistry.removeAll(registry name space);

, однако перед удалением участника из реестра вы должны отозвать ограниченную идентификациюДля этого выполните следующие действия:

const IdentityRevoke = require('composer-cli').Identity.Revoke;

let options = {
   card: 'admin@tutorial-network',
   identityId: 'f1c5b9fe136d7f2d31b927e0dcb745499aa039b201f83fe34e243f36e1984862'
 };

IdentityRevoke.handler(options);

Более подробную информацию можно найти в документации по отзыву удостоверений в следующей ссылке

0 голосов
/ 10 октября 2018

Поскольку вы развернули API, используйте его интерфейс Swagger, чтобы посмотреть, что вы можете сделать.Это RESTful API, что означает, что каждая конечная точка принимает HTTP-глаголы, которые имеют для нее смысл.

Каждый актив и конечная точка участника, например, принимает запросы DELETE, когда все, что вам нужно сделать, это передать идентификатор объектаВы хотите удалить.

Вы можете отправлять POST-запросы для создания новых данных и PUT-запросы для обновления данных.

Следует помнить, что каждый запрос создает новый блок набухгалтерская книгаDELETE не означает, что предыдущий блок исчезает, это просто означает, что он находится в удаленном состоянии, и количество ваших блоков продолжает увеличиваться для каждой транзакции, которую вы выполняете.

Если вы хотите запустить тесты и убедиться, что ваши активы созданы правильнозатем вы можете начать использовать файлы объектов, для начала есть пример функции.Он использует определенный пакет composer cucumber, вы можете увидеть это, если загляните в package.json.Это предпочтительный метод для запуска тестов, так как это не нормальная среда, в которой вы создаете тестовые данные, а затем удаляете их, вы должны быть осторожны, так как количество блоков будет увеличиваться.

0 голосов
/ 10 октября 2018

Если вы используете POSTMAN, вы можете использовать запрос DELETE, чтобы удалить ваши тестовые данные.

Используя образец Trade из учебных пособий Composer, вы можете использовать следующую команду curl для удаления Commodity COAL:

curl -X DELETE --header 'Accept: application/json' 'http://localhost:3000/api/Commodity/COAL'

Если вы хотите удалить вседанные в вашей бизнес-сети, вы можете исследовать команду composer network reset.( описано здесь в Документах Composer.)

...