Спасибо всем, кто пытается помочь :)

Справочная информация:
Я использую Spring framework версии 2.4.3 вместе с Java (и Maven)

На мой вопрос: Можно ли сократить http://localhost:8080/api/v1/example?admin=true&superPrivilege=true до чего-то вроде http://localhost:8080/api/v1/example?admin&superPrivilege.

Итак, я хочу использовать логические параметры в качестве флага.
Если параметр установлен, он считается истинным, если не ложным. Возможно ли это в Spring Boot?

На самом деле я не знаю, что искать в Google, потому что я новичок в каких-либо веб-разработках.
(И, да, я попробовал пару часов в последние дни xD)

1
DragonCoder 9 Апр 2021 в 08:07

2 ответа

Лучший ответ

Другой подход мог бы быть:

@GetMapping("/demo")
public String demo(@RequestParam Map<String, String> parameters) {
    if (parameters.containsKey("key")) {
        System.out.println("I has key");
    }
    return "hello";
}
2
Ghokun 9 Апр 2021 в 05:48

Вы можете проверить, присутствует ли параметр в вашем URL-адресе, с помощью Optional<>

 @GetMapping
    public ResponseEntity<?>dataGet(@RequestParam("admin") Optional<Boolean> admin) {
        if(admin.isEmpty()) {
                  // Do anything //without admin role
            
        }
         else{
                // Do anything with admin role
                  }
}

Также, если вы передаете параметр без какого-либо значения, он будет пустым, поэтому вы можете проверить его соответствующим образом.

0
Shubh 9 Апр 2021 в 05:49