REST API设计 - 有关集合中项目的其他信息

时间:2018-06-08 07:02:48

标签: rest api

我在端点/服务器上有一个集合,它返回有关所有服务器的信息:

{
    uid: "5t7yu8i9io0op",
    service_name: "Service Test",
    dc: "dc1",
    sync: true
}

这是一个简单的端点,只需要从后端命中db。 但服务器有很多关于它们的附加信息,例如:荒地状态(后端更多工作)。所以,如果我想检查一台服务器的运行状况,我点击端点/服务器/:uid / health,我得到:

{
    overall_status: "HEALTH_OK",
    warnings: [],
    errors: []
}

但现在我的问题是,我想从所有服务器获得健康检查,那么这样的API应该怎么样?应该是/ servers / health,/ healthchecks吗?或者它应该可以嵌入到主要集合中,例如:/ servers?health = true?

1 个答案:

答案 0 :(得分:1)

假设:服务请求可能了解服务器名称,ID或主机名。为简洁起见,我们称之为serverId;

然后你可以设计你的api

建议的问题解决方案

/servers/health/{serverId}

代替serverId传递一个类似' ALL'的文本。你知道api会如何回应。

对于大多数交互端点,此请求的创建很简单,而且在理想情况下,它应该在不到1秒的时间内返回响应。

其他用例

此端点导致另一个方案的潜在用例 如果需要对所识别的服务器子集进行运行状况检查,该怎么办?

使用文字' SUBSET'在{serverId}的端点请求中,并在请求正文中传递serverID的子集。

毋庸置疑,获取运行状况的预期方法包括生成不同的线程以获取每个服务器的运行状况,并在单个响应中合并结果。