composer-rest-server中的自定义异常处理程序

时间:2019-06-19 08:53:30

标签: hyperledger-fabric hyperledger-composer

我使用Hyperledger作曲器V0.20和结构hlfv12。

  1. 如何禁用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 /...”

  2. “ ValidationError”的自定义错误消息

    当我发出不带必需参数的POST请求时,它将返回带有状态代码422的ValidationError错误。它还提供有关请求出问题的详细信息。

    {
    "$class": "org.test.AddAsset",
    "id": "string",
    "name": "string",
    "address": "string",
    "transactionId": "f8fda36f242d5bc03bb63d5c18e89dd03a00d24fc8cf6989ebe63776347c7b26",
    "timestamp": "2019-06-19T07:29:03.440Z"
    }
    

    这是不希望的,因为响应会显示请求的格式。

  3. 如何在响应中禁用错误​​堆栈?

    在事务处理器功能中,我使用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中编写中央自定义异常处理程序,或者有什么方法可以避免上述问题?

0 个答案:

没有答案