该工序有望为特定产品提供报价。有两个输入变量,它们定义了返回的报价对象。从语义上讲,将其作为GET请求提供是有意义的。
GET host/api/v1/.../quotes/{variableA}/{variableB}
这将返回(变量A,变量B)元组的引用对象。 现在,我还有两个要求:
该操作应该能够接收多个输入元组。我希望能够提供最多6个项目的报价,所有报价均由上述元组描述。
该操作应可以选择省略报价的某些详细信息。我不知道为这种资源过滤创建一个新的端点是否是最佳实践,还是不希望使用其他技术。
在我的简单方法中,我将根据需求1切换到POST请求:
POST host/api/v1/.../quotes
{
"items":
[
{
"variableA": "someValue",
"variableB": someValue
},
{
"variableA": "someValue",
"variableB": someValue
}
]
}
我的问题是:
如果用户希望多次检索相同的资源,那么我从GET切换到POST方法的事实有多令人困惑?如果可以通过ID识别引号,则可以使用GET,但是元组会使它很长。最佳做法是什么?
我如何提供单个资源或多个资源的过滤版本?不同的端点?过滤器标签?
我对API设计非常陌生,之前曾犯过一些耗时的错误,因此感谢您的投入。