デバイスからいくつかのデータを取得し、そのリソースが初めて要求されたときにリソースを設定する python-eve アプリにいくつかのコードがあります。コードがデバイスに正常に接続できない場合があります。この場合、単純な 500 エラーではなく、これをよりよく説明するエラー メッセージを返したいと思います。on_fetch_item フックは次のとおりです。
def before_returning_item(resource, _id, document):
if resource == "switches":
if "interfaces" not in document.keys():
# retrieve and store switch config if it hasn't been stored yet
r = app.data.driver.db[resource]
try:
switch = prepare_switch_from_document(document)
except socket.timeout:
# raise some more meaningful error with message
pass
interface_list = switch.get_formatted_interfaces()
r.update({'_id': _id}, {'interfaces': interface_list})
document['interfaces'] = interface_list
app.on_fetch_item += before_returning_item
前もって感謝します。