[英]Restful Web Service Error Handling
在我的API
,創建新用戶時,我調用了許多函數:
userInfo = request.get_json()
email = userInfo.get('email')
password = userInfo.get('password')
validate_email(email)
validate_password(password)
if (no_errors):
add_user_to_database(user)
else:
return exception(?)
我的目標是要收集由前三個function
調用中的任何一個引起的所有錯誤。 一個功能可能會捕獲多個錯誤。
例如:
def validate_email(email):
if email is None:
# store error
else:
if email_already_on_server(email)
# store error
if email_too_long(email)
# store error
# What should I be doing here..
存儲所有errors
,我想返回一個exception(?)
顯示所有已拾取的errors
。
我不確定執行此操作的最佳方法是什么。
1)我是否應該創建一個對象(自定義錯誤類)以傳遞給我的所有函數以存儲任何errors
?
2)如果發現錯誤,我應該返回給用戶什么? 這是一個自定義exception
, HTTP status code
還包含JSON
格式的所有錯誤嗎?
我很難掌握正確的方法來做到這一點。
對於flask,我喜歡使用jsonify庫,然后以這種方式格式化錯誤:
from flask import jsonify
def jsonifys(status_code=200, **kwargs):
response = jsonify(**kwargs)
response.status_code = status_code
return response
然后,我將從方法中引發錯誤,並在響應中返回如下結果:
return jsonifys(500, error='unable to create process')
因此,任何前端都可以輕松讀取錯誤代碼,並且該消息可以提供所需的任何信息。 JSON格式也很方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.