我有一个预测模型,我将其包装在一个REST端点中。在底层,/forecast
端点根据GET参数feature_name
从数百个模型中选择一个来进行预测。
我们有一个用例,需要通过单个HTTP请求获取所有模型的所有预测。我们应该:
- 使
feature_name
成为可选参数,如果没有传递任何值,则返回所有模型的预测? - 如果用户想要所有预测,让他们在
feature_name
中传递一个特殊词如'all'
? - 维护两个端点,
forecast
和forecast_all
? - 我没有想到的其他方法?
回答:
使用/foo/{id}
端点来获取单个项目,而使用单独的/foo/
端点来获取所有项目的集合,这种做法非常普遍。
我特别建议研究REST集合的标准格式。HAL是一个流行的选择。
我之前写了一篇文章,关于REST服务中的集合。也许这对提供更多背景信息也有帮助。