我有一组城市,我正在为其创建一个 REST API(我的第一个 REST API)。每个城市都有许多与语言无关的东西,例如建国日期和人口数量。城市也有一些取决于语言的东西,例如标题和简短描述。在内部,城市文件具有以下格式:
{
"population": 9042,
"name": {
"en": "Berlin",
"nl": "Berlijn",
// ...
},
// ...
}
我的 API 的用户总是希望只查看特定语言的城市信息,然后返回如下内容:
{
"population": 9042,
"name": Berlin,
// ...
}
我已通过 /cities/:id/:language_code
使这些访问,例如 cities/123/en
。现在我想实现城市列表:GET/cities
。那里也需要请求的语言。由于这会导致 /cities/:language_code
,我的印象是把它放在 url 的末尾不是一个好主意,并且怀疑我会更好地使用 /en/cities/...随便...
.
这通常如何在 REST API 中完成?有什么大的、很好实现的 API 是一个很好的例子吗?
最佳答案
REST API 基于 HTTP 协议(protocol),因此它们可以使用 header ,这些 header 通常用于定义首选语言环境。
所以我会为此使用 Accept-Language
参数。
# Request
GET /cities/.... HTTP/1.1
Host: www.example.org
Accept-Language: en,en-US,fr;q=0.6
愿意:
{
"population": 9042,
"name": Berlin,
// ...
}
关于rest - 在 REST API 中支持多种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25353854/