鑑於RESTful API,在Rails中實現,我想在響應中不僅包含由ActiveModel::Validations
生成的錯誤消息,還包含自定義錯誤代碼。首先我想指出,我不是在談論HTTP Status codes。我正在討論將任何類型的錯誤(從像record not found
這樣的小錯誤到像username can't be blank
這樣的小驗證錯誤)的錯誤映射到唯一的數字代碼,即自定義應用程序特定的錯誤代碼。讓我舉一個例子 - 給出的錯誤代碼的列表,如:如何在Rails API中返回自定義錯誤代碼?
1: record not found
... some other errors
# Validation errors for User model between 1000 to 2000
1001: first name can't be blank
1002: first name must contain at least 3 characters
1003: last name can't be blank
1004: last name must contain at least 3 characters
...some other errors
如果我有一個表格的用戶,並與名字和姓氏空字段提交,我想在響應正文類似:
{error_codes: [1001, 1002, 1003, 1004]}
或類似的東西(例如,我可以具有error objects,每個陣列具有一個代碼,消息顯影劑,消息用戶等)。讓我舉與Twilio API,從RESTful API Design: what about errors?採取了一個例子:
在此,20003是一些自定義的Twilio特定的代碼。問題是 - 這怎麼能在Rails中實現呢?我看到幾個難點:
- 我該如何獲得所有可能遇到的錯誤列表。即使僅僅出現驗證錯誤,也很難獲得這樣的列表,更不用說可能發生的其他類型的錯誤。
- 該列表應該如何組織 - 可能在YAML文件中?
- 如何訪問列表 - 可能類似於通過
I18n.t
訪問翻譯的方式?
我真的很感謝你對這個主題的任何建議。謝謝。
P.S.我認爲這是一個similar question。