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