将路径参数与查询参数混合以获取 rest 请求?

Mix path parameters with query parameters for get request in rest?

我有这样的路径:

 GET http://aaa.com/invoices/{someType}/<bunch of optional query parameters>

可以在 rest 中将路径参数与常规查询参数混合使用吗api? 或者更好地使用所需的查询参数也许有更好的方法?

It is okay to mix path parameters with regular query parameters in rest api?

是的。 REST 不关心您对资源标识符使用什么拼写——任何符合 RFC 3986 描述的生产规则的拼写都可以。编码到 URI 中的信息由服务器自行决定并供其自己使用。

从通用客户端的角度来看,标识符是整个 URI。

/a/b/c/d
/a/b/c/d?hasOptionalParameter=true

就 REST 而言,这是两个 不同的 标识符,因此是两个 不同的 资源。你有一个单一的端点是一个实现细节。

URI Templates 允许您描述“通过变量扩展的一系列统一资源标识符”。通用模板支持路径段和查询部分的变量扩展。

但是:最熟悉的 URI 模板之一是 HTML 形式;表单操作查询部分的 GET perform a replacement 的处理规则,但保留路径段不变。实际上,表单操作 URI 的路径部分不会被客户端更改,但查询部分会发生更改。