From c6f0738b147b1f8dfca79fe46a72f8a62302e5b7 Mon Sep 17 00:00:00 2001
From: suhyeon <suhyeon@ajou.ac.kr>
Date: Mon, 17 Jul 2023 15:47:50 +0900
Subject: [PATCH] musicSearch

---
 ...cation.java => MysprigwebApplication.java} |  7 ++-
 .../controller/MyWebController.java           | 57 +++++++++++++++++++
 .../kr/ajousw/myspringweb/dto/MusicList.java  | 17 ++++++
 3 files changed, 78 insertions(+), 3 deletions(-)
 rename src/main/java/kr/ajousw/myspringweb/{MyspringwebApplication.java => MysprigwebApplication.java} (56%)
 create mode 100644 src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java
 create mode 100644 src/main/java/kr/ajousw/myspringweb/dto/MusicList.java

diff --git a/src/main/java/kr/ajousw/myspringweb/MyspringwebApplication.java b/src/main/java/kr/ajousw/myspringweb/MysprigwebApplication.java
similarity index 56%
rename from src/main/java/kr/ajousw/myspringweb/MyspringwebApplication.java
rename to src/main/java/kr/ajousw/myspringweb/MysprigwebApplication.java
index 55b782d..babf549 100644
--- a/src/main/java/kr/ajousw/myspringweb/MyspringwebApplication.java
+++ b/src/main/java/kr/ajousw/myspringweb/MysprigwebApplication.java
@@ -4,10 +4,11 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
-public class MyspringwebApplication {
+public class MysprigwebApplication {
 
-	public static void main(String[] args) {
-		SpringApplication.run(MyspringwebApplication.class, args);
+    public static void main(String[] args) {
+		SpringApplication.run(MysprigwebApplication.class, args);
 	}
 
 }
+
diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java
new file mode 100644
index 0000000..a0fd934
--- /dev/null
+++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java
@@ -0,0 +1,57 @@
+package kr.ajousw.myspringweb.controller;
+import kr.ajousw.myspringweb.dto.MusicList;
+
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import com.fasterxml.jackson.databind.ObjectMapper;
+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;
+
+
+@RestController
+public class MyWebController {
+    @GetMapping(value="/musicSearch/{term}")
+    public MusicList musicSearchByPath(@PathVariable String term) {
+
+        //클래스 변수로 정의
+        RestTemplate restTemplate = new RestTemplate();
+        
+        // 아래 코드는 클래스 메쏘드에 작성 – GetMapping 부분에 구현
+        // 아래 코드에서 url은 “itunes url”
+        try {
+            String url = "https://itunes.apple.com/search?term="+term+"&entity=album";
+            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 String term){
+        //클래스 변수로 정의
+        RestTemplate restTemplate = new RestTemplate();
+        
+        // 아래 코드는 클래스 메쏘드에 작성 – GetMapping 부분에 구현
+        // 아래 코드에서 url은 “itunes url”
+        try {
+            String url = "https://itunes.apple.com/search?term="+term+"&entity=album";
+            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;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java b/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java
new file mode 100644
index 0000000..deb659a
--- /dev/null
+++ b/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java
@@ -0,0 +1,17 @@
+package kr.ajousw.myspringweb.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.util.List;
+import java.util.Map;
+
+@Getter
+@Setter
+@ToString
+
+public class MusicList {
+    private Integer resultCount;
+    private List<Map<String, Object>> results;
+}
\ No newline at end of file
-- 
GitLab