Rozwijam projekt przy użyciu Spring Boot. Mam kontroler, który akceptuje żądania GET .
Obecnie akceptuję żądania na następujące rodzaje adresów URL:
ale chcę akceptować żądania przy użyciu parametrów zapytania :
Oto kod mojego kontrolera:
@RequestMapping(value="/data/{itemid}", method = RequestMethod.GET)
public @ResponseBody
item getitem(@PathVariable("itemid") String itemid) {
item i = itemDao.findOne(itemid);
String itemname = i.getItemname();
String price = i.getPrice();
return i;
}
java
rest
spring-boot
Mehandi Hassan
źródło
źródło
@RequestParam
(dobry punkt wyjścia: oficjalny przewodnik )Odpowiedzi:
Użyj @RequestParam
źródło
public @ResponseBody item getitem(@RequestParam("data") String itemid){
wymaga, aby parametr zapytania danych był zawsze obecny. Zamiast tego, jeśli użyjesz go w ten sposóbpublic @ResponseBody item getitem(@RequestParam Map<String, String> queryParameters){
, spowoduje to, że dane będą opcjonalneChociaż zaakceptowana przez afraisse odpowiedź jest absolutnie poprawna pod względem użycia
@RequestParam
, sugerowałbym ponadto użycie opcjonalnego <>, ponieważ nie zawsze można zapewnić, że używany jest właściwy parametr. Ponadto, jeśli potrzebujesz liczby całkowitej lub długiej, po prostu użyj tego typu danych, aby uniknąć późniejszego rzutowania typów w DAO.źródło
W Spring boot: 2.1.6, możesz użyć jak poniżej:
@ApiOperation to adnotacja pochodząca z interfejsu API Swagger, służy do dokumentowania interfejsu API.
źródło
required = true
domyślnieTo też mnie zainteresowało i znalazłem kilka przykładów na stronie Spring Boot.
Zobacz także tutaj
źródło