首页 > 解决方案 > REST:处理请求中同名的矩阵样式和模板样式参数

问题描述

考虑以下请求

   GET http://localhost:8080/app/{id}/details;id=some-value-here

在上面的请求中,有一个名为的模板样式参数id和一个矩阵类型参数的名称/值id=some-value-here

为此类请求提供服务时,API 行为应该是什么?

标签: javaspringrestweb-servicesdjango-rest-framework

解决方案


在 RFC 中找到了答案。

根据RFC 6570的 URI 模板,第 3.2.1 节。变量扩展说以下(摘录)

如果一个变量在一个表达式或一个 URI 模板的多个表达式中出现不止一次,则该变量的值必须在整个扩展过程中保持静态(即,为了计算每个扩展,该变量必须具有相同的值)。

id这意味着,处理请求,但保留在整个 URI 扩展过程中遇到的任何第一个值。

例如,

GET http://localhost:8080/app/{id}/details;id=some-value-here

如果id是 1,扩展应该是

GET http://localhost:8080/app/1/details;id=1

推荐阅读