在端点/servers有一个集合,它返回关于所有服务器的信息:
{
uid: "5t7yu8i9io0op",
service_name: "Service Test",
dc: "dc1",
sync: true
}这是一个简单的端点,只需要从后端命中db。但是服务器有很多关于他们的附加信息,f.e。heath状态(后端的更多工作)。因此,如果我想检查一台服务器的运行状况,我点击端点/servers/:uid/health,得到:
{
overall_status: "HEALTH_OK",
warnings: [],
errors: []
}但是现在我的问题是,我想从所有的服务器上得到健康检查,那么这样的API应该是什么样的呢?应该是服务器/健康吗,/healthchecks?或者它应该嵌入到主集合中,比如: /servers?health=true?
发布于 2018-06-08 09:07:34
假设:服务请求可能知道服务器名称、ids或主机名。为了简洁起见,让我们称它为serverId;
然后,您就可以像这样设计api
对你的问题提出了解决方案
/servers/health/{serverId}与serverId不同,传递'ALL‘这样的文本,您就知道api将如何响应。
对于大多数交互端点,该请求的创建非常简单,而且在理想情况下,它应该在不到1秒内返回响应。
附加用例
这个端点导致了另一个场景的潜在用例:,如果需要对所标识的服务器子集进行健康检查,怎么办?
在{ serverID }的端点请求中使用文本“子集”,并在请求体中传递serverID的子集。
不用说,获取健康状态的预期方法将包括生成不同的线程来获取每个服务器的健康状况,并将结果合并到一个响应中。
https://stackoverflow.com/questions/50755119
复制相似问题