@Controller
@RequestMapping( "/custom" )
public class CustomController
{
	@Autowired
	private PositionService ps;
 
	@RequestMapping( "positions" )
    public @ResponseBody List<User> getPositions( @RequestParam String positionName )
    {
		return ps.getByName(positionName);
	}
}

Po pierwsze dodajemy adnotację @Controller dzięki temu system widzi klasę jako serwlet. Ścieżka do serwletu oznaczonego adnotacją @Controller zaczyna się od /api/. Adnotacja @RequestMapping pozwala na zdefiniowanie ścieżki do serwletu. Jak widzimy w przykładzie mamy dwie takie adnotacje, które wraz z przedrostkiem /api/ tworzą ścieżkę do serwletu. Dla naszego przykładu ścieżka będzie następująca: /api/custom/positions. Dzięki oznaczeniu @ResponseBody odpowiedź serwletu jest automatycznie konwertowana do formatu JSON. Ostatnia adnotacja @RequestParam pozwala na odczytanie parametru przekazanego przez serwlet. Parametr może być również obiektem zakodowanym w JSON, wtedy system automatycznie go zdekoduje.

Sposób przekazywania parametrów

Definiowanie metody przekazywania parametrów odbywa się za pomocą adnotacji @RequestMapping( method = RequestMethod.GET ). W przypadku żądania POST należy użyć RequestMethod.POST. Dla powyższego przykładu pobranie pozycji za pomocą metody GET będzie wyglądać następująco:

@RequestMapping( value = "positions", method = RequestMethod.GET )
public @ResponseBody List<User> getPositions( @RequestParam String positionName )
{
    return ps.getByName(positionName);
}

Przydatne zasoby: