我使用Hyperledger作曲器V0.20和结构hlfv12。
如何禁用GET请求?
composer-rest-server为所有API生成GET和POST请求。 GET请求的问题在于,当对API发出GET请求时,它会在响应中返回API的格式。
render() {
console.log('usedLines', this.state.usedLines);
return (
<View style={styles.container}>
<TextInput multiline style={{backgroundColor: 'green'}} onLayout={(e)=> this._onLayout(e)} />
</View>
);
}
我要求它返回一个错误,“没有方法可以处理GET /...”
“ ValidationError”的自定义错误消息
当我发出不带必需参数的POST请求时,它将返回带有状态代码422的ValidationError错误。它还提供有关请求出问题的详细信息。
{
"$class": "org.test.AddAsset",
"id": "string",
"name": "string",
"address": "string",
"transactionId": "f8fda36f242d5bc03bb63d5c18e89dd03a00d24fc8cf6989ebe63776347c7b26",
"timestamp": "2019-06-19T07:29:03.440Z"
}
这是不希望的,因为响应会显示请求的格式。
如何在响应中禁用错误堆栈?
在事务处理器功能中,我使用try-catch块和throw关键字处理异常。当try块中发生异常时,将对其进行正确处理,并返回所需的错误消息以及其他消息。
"error": {
"statusCode": 422,
"name": "ValidationError",
"message": "The `AddAsset` instance is not valid. Details: `id` can't be blank (value: undefined); `name` can't be blank (value: undefined); `address` can't be blank (value: undefined).",
"details": {
"context": "AddAsset",
"codes": {
"id": [
"presence"
],
"name": [
"presence"
],
"address": [
"presence"
]
},
"messages": {
"id": [
"can't be blank"
],
"name": [
"can't be blank"
],
"address": [
"can't be blank"
]
}
},
stack: ...
使用composer-rest-server生成API时是否可以在composer中编写中央自定义异常处理程序,或者有什么方法可以避免上述问题?