【发布时间】:2016-02-11 08:25:47
【问题描述】:
衡量距离的有利单位取决于文化。
例如,feet 可能优于 metre。这会使 API 的某些使用者不希望使用以下响应模型:
GET [uri]
{
...
"distanceInMetres": 256
}
也许客户应该能够提供他们的文化偏好:
GET [uri]?culture=en-US
{
...
"distance": {
"value": 840,
"unit": "ft"
}
}
这是一种可以接受的处理方式吗?我似乎找不到任何最佳实践或标准。
【问题讨论】:
-
REST 不会强制您使用查询参数,但您当然可以通过这种方式解决您的问题。另一种方法是使用
Accept-LanguageHTTP 标头字段并提供值en-US来获取英尺而不是米。不过,我不确定这是否在所有情况下都是可取的。想象一下,用户使用默认语言设置为 en-US 的浏览器访问您的服务,尽管该用户生活在一个实际上有公制系统的国家/地区 - 在这种情况下,我猜查询参数会更好。
标签: rest asp.net-web-api api-design