9 Mart 2023 Perşembe

SpringMVC RestTemplate.getForObject metodu

Giriş
İmzası şöyle
// Without parameters
<T> T getForObject(URI url, Class<T> responseType) // Parameter object list as var args <T> T getForObject(String url, Class<T> responseType, Object... uriVariables) // Parameter object list as a map <T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables)
getForObject metodu - Parametresiz
XML veya Json ile nesne elde etmek için kullanılır.
Örnek - Array
Şöyle yaparız.
Computer[] computer = restTemplate.getForObject("http://...", Computer[].class);
Örnek
Şöyle yaparız
Todo[] todos = restTemplate
  .getForObject("https://jsonplaceholder.typicode.com/todos", Todo[].class);

// If we use getForEntity
ResponseEntity<Todo[]> todos = restTemplate
        .getForEntity("https://jsonplaceholder.typicode.com/todos", Todo[].class);
Todo[] todoList = todos.getBody();
System.out.println(todos.getStatusCode().name()); // OK
System.out.println(todos.getStatusCodeValue());   // 200
getForObject metodu - Var arg parametreli
XML veya Json ile nesne elde etmek için kullanılır. Son parametre ?type=Foo şeklindeki url'ye dahil olan parametrelerdir.
Örnek
Şöyle yaparız.
QuoteResponse quoteResponse=    
restTemplate.getForObject("http://quotes.rest/qod.json?category=
{param}", QuoteResponse.class, uriVariables);
Örnek
Şöyle yaparız
String completedStatus = "true";
String userId = "1";

Todo[] todosCompletedOfUser = restTemplate
.getForObject(
 "https://jsonplaceholder.typicode.com/todos?completed={completedStatus}&userId={userId}",
 Todo[].class, completedStatus, userId);
getForObject metodu - Map Parametreli
XML veya Json ile nesne elde etmek için kullanılır. Son parametre yani Map ?type=Foo şeklindeki url'ye dahil olan parametrelerdir.

Örnek - Query Parametes
Şöyle yaparız
Map<String, String> map = new HashMap<>();
map.put("completed", "true");
Todo[] todosCompleted = restTemplate
  .getForObject("https://jsonplaceholder.typicode.com/todos?completed={completed}", 
    Todo[].class, map);
Örnek - Path Parameters
Şöyle yaparız
Map<String, String> map = new HashMap<>(); Todo resource
map.put("id", "1");
Todo todo = restTemplate
    .getForObject("https://jsonplaceholder.typicode.com/todos/{id}", Todo.class, map);
System.out.println(todo);












Hiç yorum yok:

Yorum Gönder