簡體   English   中英

寧靜的Web服務錯誤處理

[英]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)如果發現錯誤,我應該返回給用戶什么? 這是一個自定義exceptionHTTP 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM