我目前正在开发一个 Restful API,我想知道最优雅、最长寿的解决方案是什么。
一些数据:
- Rest API:服务器后端
- 应用:移动应用(ios、android等)
两者都由我们管理和消费。
这是我的要求:
更新是可选的,但推荐,我们只是想通知客户端更新他的应用程序。
需要更新并且 API 不再可用(由于 api 版本控制,这永远不会发生,但谁知道)
我可以想到几个解决方案:
- 包括一个新的 HTTP 标头,例如:
X-Client-Update: text="Some informative and meaningful message"; button="Do upgrade now!"; uri="itms-apps://itunes.com/apps/DevelopmentCompanyLLC"
应用程序将负责处理它并将其显示给用户。
- 提供端点:
要求:
POST /api/versions/
Content-Type: application/json
{"client_version": "4.3", "os_version": "6.0", "os_vendor": "ios"}
响应(可用更新):
{
"current_version": "4.4",
"latest_compatible_version": "4.0",
"update_required": false,
"update_available": true,
"message": "A new awesome update is available, download it now",
"uri": "itms-apps://itunes.com/apps/DevelopmentCompanyLLC",
"button_text": "I want it, and I want it now!"
}
响应(无可用更新):
{
"current_version": "4.3",
"latest_compatible_version": "4.0",
"update_required": false,
"update_available": false,
}
如果需要更新应用程序,我还希望始终返回将由应用程序处理的错误。
我想知道我应该使用哪种 HTTP 状态,现在我想到了,400 Bad parameters
因为我找不到更好的代码。
相应的消息将与端点解决方案提供的消息非常相似。