在REST API中,我可以在路径和查询字符串参数之间拆分资源标识符吗



我的REST API中的REST资源是Account。Account的ID是一个组合键,由cid(客户ID(、SalesOrg和CompanyCode组成。如果我想在路径参数中包含组合ID,我意识到一种方法是在构成我的组合ID的不同元素之间使用分隔符。比如123~BSD~11,或者可能是cid~123^salesOrg~GBS^companycode~11。相反,我想到了在路径参数中使用cid,在查询字符串中使用SalesOrg和CompanyCode的RESTURI。类似下面的

/v1/帐户/{cid}/联系人?SalesOrg=BSD&公司代码=11

所以,我建议在路径参数中使用我的组合ID的一个组成部分,在Querystring中使用组合ID的其余组成部分。这是一个有效的REST体系结构实践吗?如果没有,在什么情况下我的建议可以接受?

在REST API中,我可以在路径和查询字符串参数之间拆分资源标识符吗?

是-URI是一个标识符;从客户端和中间组件的角度来看,它是不透明的,这意味着服务器可以自行将其选择的任何数据编码到URI中,并供其独家使用。

路径和查询都包含在HTTP请求的请求行中,因此您可以选择将哪些数据包含在其中的哪个部分中。

将服务器需要的信息编码到片段中不会产生效果,因为HTTP请求中根本不包含信息。

我建议在path参数中使用我的组合ID的一个组成部分,在Querystring中使用组合ID的其余组成部分。这是一个有效的REST体系结构实践吗?

完全可以接受。

最新更新