Akce
Spring REST Controller » Historie » Revize 4
« Předchozí |
Revize 4/10
(rozdíl)
| Další »
Jiří Trefil, 2023-03-15 22:04
Spring REST Controller¶
- Controller řídí logiku toku informací aplikace s MVC architekturou, tedy řídí, jak uživatel s aplikací komunikuje. Rozhoduje, jaký response odeslat na konkrétní uživatelský request.
- Spring aplikace v kontextu SPADe v2 je pouze RESTové API, všechny controllery jsou tedy anotovány pomocí @RestController. Tato anotace implikuje, že třída je REST controller (správná konvence).
Příklad REST controlleru¶
// anotace RestController - říká, že třída DummyController je REST controllerem
@RestController
public class DummyController {
// RequestMapping - velice prostá anotace, která říká, že HTTP request je mapován na konkrétní metodu
// V tomto případě je HTTP request na localhost/v2/helloworld mapován na tento controller a na metodu HelloWorld
// value - konkrétní path, na které je tato metoda pověšena
// produce - co controller vrací (Content-type v headeru response objektu), tady slibujeme, že vracíme JSON
// method - na jaký typ requestu posloucháme, v tomto případě GET
@RequestMapping(value = "/v2/helloworld", produces="application/json", method = RequestMethod.GET)
public String helloWorld(@RequestParam(value = "parameter", defaultValue=" World") String parameter){
// zde samotný kód, který zpracuje request
// je maximálně vhodné z controlleru volat nějakou service, která reprezentuje logiku aplikace a nevykonávat zde nic těžkého
// tedy zde jenom přijmu request, předám ho service, od service dostanu výsledek a odpovím
return "{\"message\":\"Hello "+parameter+"\"}";
}
//zde pouze změna v method
// method - POST - touto metodou budeme odpovídat na requesty typu POST. Zbytek platí stejně jako u metody výše.
@RequestMapping(value = "/v2/helloworld", produces="application/json", method = RequestMethod.POST)
public String goodbyeWorld(@RequestParam(value = "parameter", defaultValue=" World") String parameter){
// zde samotný kód, který zpracuje request
// tedy zde jenom přijmu request, předám ho service, od service dostanu výsledek a odpovím
return "{\"message\":\"Bye "+parameter+"\"}";
}
}
Aktualizováno uživatelem Jiří Trefil před asi 2 roky(ů) · 4 revizí