diff --git a/src/main/java/kr/ajousw/myspringweb/CREATE DATABASE webdev default CHARACTER S.sql b/src/main/java/kr/ajousw/myspringweb/CREATE DATABASE webdev default CHARACTER S.sql new file mode 100644 index 0000000000000000000000000000000000000000..979ae01044d11ea24391d0a9dabdf7aeabac0055 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/CREATE DATABASE webdev default CHARACTER S.sql @@ -0,0 +1 @@ +CREATE DATABASE webdev default CHARACTER SET UTF8 collate utf8_general_ci; \ No newline at end of file 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 0000000000000000000000000000000000000000..1137da563450660aa894f35afa38c92233b88a65 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java @@ -0,0 +1,35 @@ +package kr.ajousw.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.RestController; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import kr.ajousw.myspringweb.dto.MusicList; + +@RestController +public class MyWebController { + + @GetMapping(value="/musicSearch/{term}") + public String musicSearch(@PathVariable String term) { + RestTemplate restTemplate = new RestTemplate(); + String url = "https://itunes.apple.com/search?term=" + term + "&entity=album"; + + try { + String res = restTemplate.getForObject(url, String.class); + ObjectMapper mapper = new ObjectMapper(); + MusicList list = mapper.readValue(res, MusicList.class); + String ret = mapper.writeValueAsString(list); + + return ret; + } catch(IOException e) { + System.out.println(e.toString()); + } + return "{\"resultCount\":0, \"results\":[]}"; + } + +} 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 0000000000000000000000000000000000000000..c6e2afdd4a848e407b0df3525f04f4d3600851b5 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java @@ -0,0 +1,16 @@ +package kr.ajousw.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/java/kr/ajousw/myspringweb/entity/FavoriteMusic.java b/src/main/java/kr/ajousw/myspringweb/entity/FavoriteMusic.java new file mode 100644 index 0000000000000000000000000000000000000000..62a892408c3bd7d16016a92c9db24383ce2145c4 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/entity/FavoriteMusic.java @@ -0,0 +1,36 @@ +package kr.ajousw.myspringweb.entity; + +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Entity +@Table(name="favoriteMusic") +@Getter +@Setter +@ToString +public class FavoriteMusic { + + @Id + @Column(length=32) + private String collectionId; + + @Column + private String collectionType; + + @Column + private String artistId; + + @Column + private String artistName; + + @Column + private String artistViewUrl; + + @Column + private String collectionName; + + @Column + private String collectionViewUrl; +} diff --git a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..0d44ffcc6f3d795ba2b2691b7587b9fedb930f1e --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java @@ -0,0 +1,11 @@ +package kr.ajousw.myspringweb.repository; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + +import kr.ajousw.myspringweb.entity.FavoriteMusic; + +public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String> { + List<FavoriteMusic> findAll(); +}