Spring 在不使用@RequestParam的情况下,如何根据默认设置设置请求参数

Spring 在不使用@RequestParam的情况下,如何根据默认设置设置请求参数,spring,Spring,如果我将我的方法形式化如下: @GetMapping("/dl4j/getWordVector") public ResponseEntity<List<Double[]>> getWordVector(String modelName, String word) { // ... } 为什么会这样?我想这应该是一个选择退出,因为我想RESTAPI中的大多数参数都是必需的,不是吗?@RequestParam不是为REST而发明的,它是为表单提交和URL请求而发明

如果我将我的方法形式化如下:

@GetMapping("/dl4j/getWordVector")
public ResponseEntity<List<Double[]>> getWordVector(String modelName, String word) {
    // ...
}
为什么会这样?我想这应该是一个选择退出,因为我想RESTAPI中的大多数参数都是必需的,不是吗?

@RequestParam不是为REST而发明的,它是为表单提交和URL请求而发明的,在这些情况下,参数很少是可选的

有些人会争辩说,您应该使用@PathParam来访问RESTfull资源,但如果参数是可选的,@PathParam的效果更差,因为排序很重要


您需要记住的另一件事是,参数的名称不会自动成为字节码的一部分,只有在使用调试信息编译时,参数名称才可用,这就是您需要注释的原因。查看此项了解更多信息

我不太愿意看到其他方法,但您可以在功能上等效但不太详细的情况下执行此操作:@RequestParammodelName String modelName
@GetMapping("/dl4j/getWordVector")
public ResponseEntity<List<Double[]>> getWordVector(@RequestParam(value="modelName", required = true) String modelName, String word) {      
    // ...
}