Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...

Metody żądania

Definiowanie metody przekazywania parametrów żądania odbywa się za pomocą adnotacji @RequestMapping( method = "method" ).

Podstawowe metody są następujące:

  • RequestMethod.GET

...

  • RequestMethod.

...

  • POST

...

  • RequestMethod.

...

  • DELETE

Dla powyższego przykładu pobranie pozycji za pomocą metody GET będzie wyglądać następująco:

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

Przekazywanie parametrów w linku

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

Istnieje możliwość przesyłania podstawowych parametrów w linku RESTowym żądania. Zmienną taką należy umieścić w klamrach {}, a następnie przekazać ją do metody za pomocą odczytania parametru

@PathVariable String positionName. Teraz jeżeli wywołamy url: /api/custom/positions/test, to jako parametr positionName zostanie do matody przekazana wartość test.

 

Przydatne zasoby: