java - 如何处理具有不同参数的相同 URL?
问题描述
我在创建一些 REST-API 时遇到了一些问题。
我想要一些 API 有不同的参数。
举些例子:
path?include="stack"
path?exclude="overflow"
我想了两个办法。
- 第一:创建API可以接收控制器中的所有参数和进程。
@GetMapping
public ResponseEntity getByFilter(@RequestParam @Nullable final String exclude,
@RequestParam @Nullable final String include){
// any process to distinguish.
}
- 第二:创建多个API可以接收一个参数。
@GetMapping(params = "include")
public ResponseEntity getByInclude(@RequestParam final String include){
// do anything
}
@GetMapping(params = "exclude")
public ResponseEntity getByInclude(@RequestParam final String exclude){
// do anything
}
但两者都有问题。
第一:逻辑将增加参数。
第二:我用于SpringBoot的SwaggerDocument不能支持相同的路径,不同的参数。如果我使用“enableUrlTemplating”,我的团队将手动管理 SwaggerDocument。
我该如何解决这些问题?
谢谢阅读。
解决方案
您只需一个控制器即可完成此操作。像这样写控制器
@GetMapping
public ResponseEntity getByFilter(@RequestParam(value="exclude", required=false) String exclude,@RequestParam(value="include", required= flase)String include){
// any process to distinguish.
}
推荐阅读
- powershell - 如何去除文件名的一部分?
- c# - Microsoft.AspNetCore.Routing.RouteValueDictionary 的 System.IndexOutOfRangeException
- vb.net - 使用 Case 语句时的算术问题
- android - Android PreferenceScreen 在左侧显示大量空白区域
- kotlin - Kotlin:使用 map 和 reduce,生成随机颜色列表
- node.js - 从版本 8.11.1 升级后 NodeJS 无法工作
- javascript - 反向链接列表 - Javascript - 使用类还是只定义一个函数?以及如何计算时间/空间复杂度
- php - 如何使用产品摘录来查找数据库行,找到字段值并使用它来分配帖子类型 pr。类别
- javascript - 无效日期的 Moment.js 问题
- css - 字体真棒:使用 hover::before 时,图标消失了