我正在设计一个 RESTful API,想知道验证错误消息的最佳格式是什么。
例如,我的帐户创建端点接受一个 JSON 对象:
user: {
first_name: string,
last_name: string,
address: {
street: string,
city: string,
zip_code: string
}
}
我的回复将采用以下格式:
{
code: 400, // HTTP code
message: "Validation failed", // general message
type: "validation_failed", // there are other types of errors as well
errors: WHAT_DO_I_SHOW_HERE
}
我有几种验证错误消息的选择:
格式一
errors: {
last_name: "First name is required",
address: {
zip_code: "ZIP code is invalid"
}
}
或者像格式 2 一样将错误压平
errors: {
last_name: "First name is required",
"address.city": "City is required",
"address.zip_code": "ZIP code is invalid"
}
或者使用数组,其中每个元素可以有字段名、错误代码、错误信息、嵌套错误等。
errors: [
{
field: "first_name",
message: "First name is required",
},
{
field: "address",
errors: [
{
field: "zip_code",
message: "ZIP code is invalid"
}
]
}
]
或
errors: [
{
field: "first_name",
message: "First name is required",
},
{
field: "address.zip_code",
message: "ZIP code is invalid"
}
]
显然数组格式更灵活,因为字段名是可选的,所以它可以容纳与多个字段组合相关的错误(例如,时间间隔的结束时间必须在开始时间之后)。但我的问题是,API 用户使用哪个更容易?
最佳答案
对于在前端 html 工作的我来说,我更愿意将错误格式 2 扁平化。这对我来说很容易查看它,或者很容易定位要显示的错误。
乐于倾听他人的意见
关于json - REST API 中的验证错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39759906/