如果我不通过搜索参数,URL会更改我不想要的内容,我有一个用于搜索操作以及获取操作的通用API。
例如: 如果传递了搜索参数: 本地主机:8080 / api / search?name = harmeet
如果未传递搜索参数: 本地主机:8080 / api / search
无论我是否传递参数,我想要的URL都不会更改
例如如果我不传递参数,则网址应为: 本地主机:8080 / api / search?name =''
该代码已使用Spring Boot编写
答案 0 :(得分:0)
URL的调用取决于客户端而不是服务器端。如果在客户端未传递参数值时始终希望它为某值或“”,则可以将控制器方法定义为:
@GetMapping("/api/search")
public Object getName(@Requestparam(value="name",required=false,defaultValue="")String name){
// your logic here
// value of 'name' variable will "" if nothing is passed
}
只要在URL调用中未提供参数,只需将必填字段设置为false,并使用defaultValue字段设置要设置的任何默认值即可。
答案 1 :(得分:0)
据我了解,您想创建处理两个API调用的API。
例如
http://localhost:8080/search?name=hermeet
我认为您已经在后端创建了API ...对!!!
因此,逻辑上没有任何问题,但是默认情况下需要在方法中定义的参数。
不允许您传递null或空值。
您只需要在两种情况下都允许使用参数即可。 按照以下方式,
- 可选<'Parameter_Type'>参数名称
- @RequestParam(value =“ parameter_name”,required = false)字符串变量
示例:
@GetMapping("/search")
public List<Entity> getSearchResult(@RequestParam(value = "parameter_name", required = false) String variable) {
if(variable!=null) {
// Get Data based on condition.
} else {
// Get All Data
}
}
@GetMapping("/search")
public List<Entity> getSearchResult(@RequestParam("parameter_name") Optinal<String> variable) {
if(variable.isPresent()) {
// Get Data based on condition.
} else {
// Get All Data
}
}