Web application

Spring Boot część 5 – Architektura REST API

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 Sping 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

Rest example

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";
    }
}

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

Tags:
Show Buttons
Hide Buttons