w ,

FajneFajne Dobre!Dobre! ŚwietnieŚwietnie SmuteczekSmuteczek

Spring Boot część 5 – Architektura REST API

Spring Boot
Spring Boot

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

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

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ń:

REST API – Ściąga właściwej implementacji

Napisane przez Przemysław Bykowski

Aktywny programista i energiczny trener. Specjalizuje się w Spring Boot i uczę go w ramach AkademiaSpring.pl. Po godzinach udzielam się na YouTubach. Więcej o mnie.

Dodaj komentarz

Spring Boot

Spring Boot część 4 – Mechanizm wstrzykiwania zależności

Spring Boot

Spring Boot część 6 – Parametryzacja metod REST’owych