Endpoint – W architekturze REST punkt końcowy do którego można się odwołać. Częstym przypadkiem jest odwoływanie się do endpoint’a aby pobrać dane.
Przykładem może być wywołanie endponta stanowiącego adres:
http://<adresIpServera>:<portAplikacji>/<ścieżkaWywołania>
Implementacja
Aby zaimplementować to w Spring należy nad klasą, która ma tą funkcjonalność dostarczać dodać adnotacje @RestController, natomiast nad samą metodą zwracającą dane adnotacje @RequestMapping oraz @ResponseBody.
@RestController public class Shop { @RequestMapping("/getExample") @ResponseBody public String purchase() { return "example"; } }
Adnotacja @RestController została omówiona w drugiej części tego kursu – Adnotacje i obiekty zarządzane. Zaś pozostałe adnotacje to:
- @RequestMapping – adnotacja wskazującą, że dana metoda stanowi Endpoint. Może być wywoływana zdalnie. Przyjmuje ona wartość stanowiącą relatywną ścieżkę dla jej wywołania;
- @ResponseBody – wskazówka dla kontekstu Spring, aby zawartość metody (w tym przypadku String) był zwracany nie do modelu dla widoku lecz jako obiekt.
Teraz wywołując metodę na lokalnej maszynie odwołanie się do metody jest następujące:
http://localhost:8080/getExample
W pierwszej kolejności adres maszyny + port aplikacyjny + wartość przekazana w adnotacji @RequestMapping.
Rezultat działania w oknie przeglądarki jest następujący
Możliwości adnotacji @RequestMapping
Adnotacje @RequestMapping można również stosować nad nazwą klasy. Wówczas odwołanie do wszystkich metod w tej klasie będzie musiało zostać poprzedzone wartością w niej podanej. Poniższy przykład prezentuje dodanie adnotacji do klasy.
@RestController @RequestMapping("/api") public class Shop { @RequestMapping("/getExample") @ResponseBody public String purchase() { return "example"; } }
Dla tego przypadku każde wywołanie metody z tej klasy musi zostać poprzedzone:
http://localhost:8080/api
Teraz, aby wywołanie metody purchase() było możliwe należy odwołać się do adresu:
http://localhost:8080/api/getExample
Metody GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
Domyślnie adnotacja @RequestMapping wskazuje, że jest to metoda GET. Jednak podajac dodatkowy paramter można wskazac na dowolną metodę HTTP.
@RestController @RequestMapping("/api") public class Shop { @RequestMapping(value = "/getExample", method = RequestMethod.POST) @ResponseBody public String purchase() { return "example"; } }
Co dalej?
W kolejnym kursie zostaną opisane sposoby przekazywania danych do metod stanowiących endpointy.
Cały kurs opisujący mechanikę i działanie Spring Boot od podstaw znajdziesz tutaj: Kurs Spring Boot
REST API – Wideo
Tworzenie aplikacji REST API z wykorzystaniem Spring Boot zobaczysz w jednym z moich szkoleń: