Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REST:处理请求中同名的矩阵样式和模板样式参数_Java_Spring_Rest_Web Services_Django Rest Framework - Fatal编程技术网

Java REST:处理请求中同名的矩阵样式和模板样式参数

Java REST:处理请求中同名的矩阵样式和模板样式参数,java,spring,rest,web-services,django-rest-framework,Java,Spring,Rest,Web Services,Django Rest Framework,考虑以下请求 GET http://localhost:8080/app/{id}/details;id=some-value-here 在上述请求中,有一个名为id的模板样式参数和一个名为id=some value的矩阵类型参数名称/值 在服务这些请求时,API的行为应该是什么 是否通过处理重复的参数键来照常提供请求?因为即使参数键相同,它们的路径也不同。一种是模板式,另一种是矩阵式 拒绝表示参数名称存在冲突的请求 是否有指导此类冲突解决的HTTP RFC 在RFC中找到了答案 具体

考虑以下请求

   GET http://localhost:8080/app/{id}/details;id=some-value-here
在上述请求中,有一个名为
id
的模板样式参数和一个名为
id=some value的矩阵类型参数名称/值

在服务这些请求时,API的行为应该是什么

  • 是否通过处理重复的参数键来照常提供请求?因为即使参数键相同,它们的路径也不同。一种是模板式,另一种是矩阵式
  • 拒绝表示参数名称存在冲突的请求
  • 是否有指导此类冲突解决的HTTP RFC

    • 在RFC中找到了答案

      具体按照URI模板。变量展开说明如下(摘录)

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

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

      比如说,

      GET http://localhost:8080/app/{id}/details;id=some-value-here
      
      如果
      id
      为1,则扩展应为

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

      在RFC中找到了答案

      具体按照URI模板。变量展开说明如下(摘录)

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

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

      比如说,

      GET http://localhost:8080/app/{id}/details;id=some-value-here
      
      如果
      id
      为1,则扩展应为

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