Я использую Hyperledger composer V0.20 и фабрику hlfv12.
Как отключить запросы GET?
Сервер composer-rest-server генерирует запросы GET и POSTдля всех API.Проблема с GET-запросами состоит в том, что когда GET-запрос выполняется для API, он возвращает формат API в ответе.
{
"$class": "org.test.AddAsset",
"id": "string",
"name": "string",
"address": "string",
"transactionId": "f8fda36f242d5bc03bb63d5c18e89dd03a00d24fc8cf6989ebe63776347c7b26",
"timestamp": "2019-06-19T07:29:03.440Z"
}
Я бы потребовал, чтобы он возвращал ошибку: «Нет способаобрабатывать GET /...'
Настраиваемое сообщение об ошибке для 'ValidationError'
Когда я выполняю запрос POST без обязательных параметров, он возвращает ошибку ValidationError с кодом состояния 422.Он также дает подробную информацию о том, что не так с запросом.
"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: ...
Это нежелательно, поскольку в ответе указывается формат запроса.
Как я могуотключить стек ошибок в ответе?
В функциях процессора транзакций я обрабатываю исключения, используя блоки try-catch и throw ключевое слово.Когда в блоке try возникает исключение, оно обрабатывается правильно и возвращает желаемое сообщение об ошибке, включая другое сообщение.
"error": {
"statusCode": 500,
"name": "Error",
"message": "Error trying invoke business network with transaction id aca902e4be57b739aec74b832cf55a7bab3911daf66adf55a62552708c31b767. Error: No valid responses from any peers.\nResponse from attempted peer comms was an error: Error: transaction returned with failure: Error: Something broke!",
"stack": "Error: Error trying invoke business network with transaction id aca902e4be57b739aec74b832cf55a7bab3911daf66adf55a62552708c31b767. Error: No valid responses from any peers.\nResponse from attempted peer comms was an error: Error: transaction returned with failure: Error: Something broke!\n at HLFConnection.invokeChainCode (/home/rohit/.nvm/versions/node/v8.9.4/lib/node_modules/composer-rest-server/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:1117:30)\n at <anonymous>"
}
Можно ли написать центральный настраиваемый обработчик исключений в composer при создании API-интерфейсов с помощью composer-rest-server или существует какой-либо метод, позволяющий избежать вышеуказанных проблем?