Я использую приложение API Node.js для обработки активов BigchainDB.
Проблема 1 : получение всех активов модели
Проблема 2: добавить («обновить») существующие ресурсы
Система: Node.js v8.11.2, npm v5.6.0, модуль узла «express» v4.16.3, модуль узла «babel-register» v6.26.0, модуль узла bigchaindb-orm v.2.0.0
Создание актива / получение одного актива
Я установил приложение в моей тестовой учетной записи BigchainDB (https://test.bigchaindb.com/). Создание актива с использованием драйвера BigchainDB ORM Javascript не является проблемой:
exports.create_an_entry = function(req, res) {
bdbOrm.models.myModel
.create({
keypair: aliceKeypair,
data: {
city: req.body.city,
Created_data: new Date().toString(),
}
})
.then(asset => {
res.json(asset)
});
}
Также нет проблем с получением информации о конкретном активе:
exports.read_an_entry = function(req, res) {
bdbOrm.models.myModel
.retrieve(req.params.assetId)
.then(assets => {
res.json(assets)
})
}
Проблема 1:
Использование имени модели "myModel" и получение всех ресурсов приводит к сообщению об ошибке
{message: 'Ошибка HTTP: запрашиваемая страницанедоступен ', статус:' 429 Too Many Requests ', requestURI:' https://test.bigchaindb.com/api/v1/transactions?asset_id='}
exports.list_all_data = function(req, res) {
bdbOrm.models.myModel
.retrieve()
.then(assets => {
res.json(assets)
})
}
Во-первых, есть способ получить больше активовВед, чем я создал.Во-вторых, когда я просматриваю requestURI, есть активы с данными, которые я никогда не создавал (например, «name»: «Robin», «email»: «test@test.no») Когда я изменяю имя модели на «testung»Я получаю только активы, созданные мною под этим именем модели.
Должно ли название модели быть уникальным даже для разных приложений?
Проблема 2:
ВВ примерах «добавления» операции создается ресурс, а затем к нему добавляются новые данные на том же этапе.Следуя примеру, я получаю в качестве вывода один актив с уникальным идентификатором и двумя операциями в «actionHistory ».Одна операция CREATE с начальными данными и одна операция TRANSFER с новыми данными.
Но я хочу добавить измененные / новые данные в уже созданный ресурс.Например, создается актив, где автомобиль стоит 10 000 долларов.Через некоторое время владелец решает, что автомобиль должен стоить 9 000 долларов.Следующий код не будет работать:
exports.update_an_entry = function(req, res) {
bdbOrm.models.myModel
.retrieve(req.params.assetId)
.then(asset => {
return asset.append({
toPublicKey: aliceKeypair.publicKey,
keypair: aliceKeypair,
data: {
price: req.params.price,
}
})
})
.then(updatedAsset => {
res.json(updatedAsset)
})
}
Что я делаю не так или я неправильно понимаю концепцию BigchainDB?
Кстати.учебник CRAB не работает, он отвечает со статусом "400 BAD REQUEST": https://tutorials.bigchaindb.com/crab/