Hyperledger Composer REST API调用在概念中的某些变量上失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger Composer REST API调用在概念中的某些变量上失败相关的知识,希望对你有一定的参考价值。

我的资产“空气污染”中有一些概念,例如“一氧化碳”。但是如果我在终端中调用rest-composer-server,它会给我一些错误:

REST server error

这是我的代码片段:

asset AirPollutionData identified by airPollutionDataId {
  o String airPollutionDataId
  o String location
  o DateTime datetime
  o TransferStatus status default="FOR_SALE"
  o CO co
  o NO2 no2
  o O3 o3
  o PM10 pm10
  o PM25 pm25
  o SO2 so2
  --> Member owner
}

concept CO {
  o String pollutant_description default="Carbon monoxide"
  o String units default="ppb"
  o Double concentration 
}  

concept NO2 {
  o String pollutant_description default="Nitrogen dioxide"
  o String units default="ppb"
  o Double concentration
}

concept O3 {
  o String pollutant_description default="Ozone"
  o String units default="ppb"
  o Double concentration
}
  
concept PM10 {
  o String pollutant_description default="Inhalable particulate matter (<10µm)"
  o String units default="ug/m3"
  o Double concentration
}

concept PM25 {
  o String pollutant_description default="Fine particulate matter (<2.5µm)"
  o String units default="ug/m3"
  o Double concentration
}
  
concept SO2 {
  o String pollutant_description default="Sulfur dioxide"
  o String units default="ug/m3"
  o Double concentration
}  

这里出了什么问题?在我原始的角度应用程序中,如果我想添加资产,我没有看到概念的默认值,例如污染物描述或单位。

这就是我的意思:default values gone

答案

它对我有用。请参阅下面创建的AirPollutionData资产的屏幕截图。

Swagger消息只是忽略了Concepts(它们不是资源端点)。

您发布的模型有错误:

你在这两个方面缺少定义(我创建了这些样本,只是为了让它起作用):

concept TransferStatus {
    o String id
}
participant Member identified by id {
   o String id
}

enter image description here

enter image description here

{“$ class”:“org.acme.trading.AirPollutionData”,“airPollutionDataId”:“3941”,“location”:“Labore nisi esse incididunt non。”,“datetime”:“2018-03-05T16:59: 23.239Z“,”status“:{”$ class“:”org.acme.trading.TransferStatus“,”id“:”在aute中。“ },“co”:{“$ class”:“org.acme.trading.CO”,“污染物处理”:“一氧化碳”,“单位”:“ppb”,“浓度”:248.394},“no2”: {“$ class”:“org.acme.trading.NO2”,“污染物处理”:“二氧化氮”,“单位”:“ppb”,“浓度”:50.636},“o3”:{“$ class”: “org.acme.trading.O3”,“pollutant_description”:“臭氧”,“单位”:“ppb”,“浓度”:144.997},“pm10”:{“$ class”:“org.acme.trading。 PM10“,”污染物描述“:”可吸入颗粒物(<10μm)“,”单位“:”ug / m3“,”浓度“:0.595},”pm25“:{”$ class“:”org.acme.trading .PM25“,”污染物处理“:”细颗粒物质(<2.5μm)“,”单位“:”ug / m3“,”浓度“:60.074},”so2“:{”$ class“:”org.acme .trading.SO2“,”污染物处理“:”二氧化硫“,”单位“:”ug / m3“,”浓度“:189.644},”所有者“:”资源:org.acme.trading.Member#1“}

至于在Angular生成的字段中没有显示的默认值 - 我会发现。默认情况下,Playground中提供了这些默认值,但不确定这些默认值是否在骨架应用程序中可用(这正是它的原因,供开发人员使用)。当我对此有更多了解时,我会编辑这个。

以上是关于Hyperledger Composer REST API调用在概念中的某些变量上失败的主要内容,如果未能解决你的问题,请参考以下文章

hyperledger composer

区块链100讲:Hyperledger Composer及其开发流程

Ubuntu上的Hyperledger composer CLI安装问题

安装 Hyperledger Composer 时出错

如何使用Hyperledger Fabric和Composer构建区块链网络(上)

Hyperledger Composer 中的 JWT 身份验证失败