From c53e899571fd10b1c9e53d3adf3765c78a8cbb97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=AF=BC=EC=9E=AC=20=EC=A1=B0?= <ussr1285@ajou.ac.kr> Date: Mon, 17 Jul 2023 15:22:24 +0900 Subject: [PATCH] Music search --- .gitignore | 2 +- .../controller/MyWebController.java | 48 +++++++++++++++++++ .../prcoding/mySpringWeb/dto/MusicList.java | 16 +++++++ src/main/resources/application.properties | 10 ++++ 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 src/main/java/kr/ajou/prcoding/mySpringWeb/controller/MyWebController.java create mode 100644 src/main/java/kr/ajou/prcoding/mySpringWeb/dto/MusicList.java diff --git a/.gitignore b/.gitignore index 4739898..abbb448 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ HELP.md -target/ +target/* !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ diff --git a/src/main/java/kr/ajou/prcoding/mySpringWeb/controller/MyWebController.java b/src/main/java/kr/ajou/prcoding/mySpringWeb/controller/MyWebController.java new file mode 100644 index 0000000..77c3f3b --- /dev/null +++ b/src/main/java/kr/ajou/prcoding/mySpringWeb/controller/MyWebController.java @@ -0,0 +1,48 @@ +package kr.ajou.prcoding.mySpringWeb.controller; + +import java.io.IOException; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.databind.ObjectMapper; +import kr.ajou.prcoding.mySpringWeb.dto.MusicList; + +@RestController +public class MyWebController { + RestTemplate restTemplate = new RestTemplate(); + private String url = "http://itunes.apple.com"; // ?term=${searchWord}&entity=album + + @GetMapping(value = "/musicSearch/{term}") + public MusicList musicSearchByPath(@PathVariable String term) { // String이 리턴 타입 이었음. + try { + url = url+String.format("/search?term=%s&entity=album", term); + String response = restTemplate.getForObject(url, String.class); + ObjectMapper mapper = new ObjectMapper(); + MusicList list = mapper.readValue(response, MusicList.class); + System.out.println(list.getResultCount()); + return list; + } catch (IOException e) { + System.out.println(e.toString()); + return null; + } + } + + @GetMapping(value="/musicSearch") + public MusicList musicSearchByParam(@RequestParam(value="term") String name){ + try { + url = url+String.format("/search?term=%s&entity=album", name); + String response = restTemplate.getForObject(url, String.class); + ObjectMapper mapper = new ObjectMapper(); + MusicList list = mapper.readValue(response, MusicList.class); + System.out.println(list.getResultCount()); + return list; + } catch (IOException e) { + System.out.println(e.toString()); + return null; + } + } + +} diff --git a/src/main/java/kr/ajou/prcoding/mySpringWeb/dto/MusicList.java b/src/main/java/kr/ajou/prcoding/mySpringWeb/dto/MusicList.java new file mode 100644 index 0000000..bcef0d7 --- /dev/null +++ b/src/main/java/kr/ajou/prcoding/mySpringWeb/dto/MusicList.java @@ -0,0 +1,16 @@ +package kr.ajou.prcoding.mySpringWeb.dto; + +import java.util.List; +import java.util.Map; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@ToString +public class MusicList { + private Integer resultCount; + private List<Map<String, Object>> results; +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..994755e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,11 @@ +server.port = 8098 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://210.107.196.163:41898/webdev?serverTimezone=UTC +spring.datasource.username=root +spring.datasource.password=ussr1285 +spring.jpa.properties.hibernate.show_sql=true +spring.jpa.properties.hibernate.format_sql=true +logging.level.org.hibernate.type.descriptor.sql=trace +spring.jpa.hibernate.ddl-auto=update +spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect -- GitLab