diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/Main.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/Main.java index 7d455040..5d0c62a2 100644 --- a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/Main.java +++ b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/Main.java @@ -7,10 +7,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.ApplicationContext; import org.springframework.retry.annotation.EnableRetry; -import ru.otus.spring.dto.Country; -import ru.otus.spring.service.CountryService; - -import java.util.List; +import ru.otus.spring.dto.CharacterDto; +import ru.otus.spring.service.CharacterService; @EnableCaching @EnableRetry @@ -21,11 +19,11 @@ public class Main { public static void main(String[] args) { ApplicationContext ctx = SpringApplication.run(Main.class, args); - CountryService service = ctx.getBean(CountryService.class); + CharacterService service = ctx.getBean(CharacterService.class); - Country country = service.getCountry("col"); + CharacterDto characterDto = service.getCharacter(1); - log.info(country.getName()); + log.info(characterDto.toString()); } } diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/config/CacheConfig.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/config/CacheConfig.java index a57c1386..8e2a1769 100644 --- a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/config/CacheConfig.java +++ b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/config/CacheConfig.java @@ -10,6 +10,6 @@ public class CacheConfig { @Bean public CacheManager cacheManager() { - return new ConcurrentMapCacheManager( "countries" ); + return new ConcurrentMapCacheManager( "characters" ); } } diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/dto/CharacterDto.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/dto/CharacterDto.java new file mode 100644 index 00000000..0c27a1d2 --- /dev/null +++ b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/dto/CharacterDto.java @@ -0,0 +1,57 @@ +package ru.otus.spring.dto; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public class CharacterDto { + + private int id; + + private String name; + + private String type; + + private String url; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + @Override + public String toString() { + return "CharacterDto{" + + "id=" + id + + ", name='" + name + '\'' + + ", type='" + type + '\'' + + ", url='" + url + '\'' + + '}'; + } +} diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/dto/Country.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/dto/Country.java deleted file mode 100644 index cb4c8a03..00000000 --- a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/dto/Country.java +++ /dev/null @@ -1,27 +0,0 @@ -package ru.otus.spring.dto; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -@JsonIgnoreProperties(ignoreUnknown = true) -public class Country { - - private String name; - - private String alpha3Code; - - public String getName() { - return name; - } - - public void setName( String name ) { - this.name = name; - } - - public String getAlpha3Code() { - return alpha3Code; - } - - public void setAlpha3Code( String alpha3Code ) { - this.alpha3Code = alpha3Code; - } -} diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CharacterService.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CharacterService.java new file mode 100644 index 00000000..562141c0 --- /dev/null +++ b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CharacterService.java @@ -0,0 +1,8 @@ +package ru.otus.spring.service; + +import ru.otus.spring.dto.CharacterDto; + +public interface CharacterService { + + CharacterDto getCharacter(int id); +} diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CharacterServiceRest.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CharacterServiceRest.java new file mode 100644 index 00000000..7fc9e0fb --- /dev/null +++ b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CharacterServiceRest.java @@ -0,0 +1,22 @@ +package ru.otus.spring.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestOperations; +import org.springframework.web.client.RestTemplate; +import ru.otus.spring.dto.CharacterDto; + +@Service +public class CharacterServiceRest implements CharacterService { + + private static final Logger log = LoggerFactory.getLogger(CharacterServiceRest.class); + + private RestOperations rest = new RestTemplate(); + + @Override + public CharacterDto getCharacter(int id) { + log.info("Request"); + return rest.getForObject("https://rickandmortyapi.com/api/character/" + id, CharacterDto.class); + } +} diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CountryService.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CountryService.java deleted file mode 100644 index f259945e..00000000 --- a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CountryService.java +++ /dev/null @@ -1,10 +0,0 @@ -package ru.otus.spring.service; - -import ru.otus.spring.dto.Country; - -import java.util.List; - -public interface CountryService { - - Country getCountry( String id ); -} diff --git a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CountryServiceRest.java b/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CountryServiceRest.java deleted file mode 100644 index f8a083fb..00000000 --- a/2022-02/spring-34/rest-template/src/main/java/ru/otus/spring/service/CountryServiceRest.java +++ /dev/null @@ -1,22 +0,0 @@ -package ru.otus.spring.service; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestOperations; -import org.springframework.web.client.RestTemplate; -import ru.otus.spring.dto.Country; - -@Service -public class CountryServiceRest implements CountryService { - - private static final Logger log = LoggerFactory.getLogger( CountryServiceRest.class ); - - private RestOperations rest = new RestTemplate(); - - @Override - public Country getCountry( String id ) { - log.info( "Request" ); - return rest.getForObject( "http://api.countrylayer.com/v2/alpha/" + id + "?access_key=[!!!Your key!!!]", Country.class ); - } -}