ν”„λ‘œμ νŠΈ

[Kotlin + SpringBoot + RESTApi] 였늘의 찌개 Today's Jjigae

sian han 2022. 11. 22. 16:53

Github : https://github.com/HAN-SEOHYUN/todaysjjigae

 

πŸ”¨ μ†Œκ°œ

맀일 저녁 λ°˜λ³΅λ˜λŠ” 메뉴 고민을 덜기 μœ„ν•΄ μ œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.

  • '였늘의 찌개' μ—μ„œ 찌개λ₯Ό 랜덀으둜 μ„ νƒν•΄λ“œλ¦½λ‹ˆλ‹€.
  • μ‚¬μš©μžμ˜ μ„ ν˜Έλ„κ°€ 높은 μ°Œκ°œλŠ” 좔첨확λ₯ μ΄ λ†’μŠ΅λ‹ˆλ‹€.
  • μ’‹μ•„ν•˜λŠ” 찌개λ₯Ό 등둝, μˆ˜μ •, μ‚­μ œ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • API μ„œλ²„λ§Œ κ΅¬ν˜„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

πŸͺ›λͺ©ν‘œ

  • Kotlin μ–Έμ–΄ ν•™μŠ΅
  • REST API
  • 자체 Exception 클래슀 생성 : λ°œμƒν•  수 μžˆλŠ” λͺ¨λ“  μ˜ˆμ™Έλ₯Ό κ³ λ €ν•˜μ—¬ μ˜ˆμ™Έμ²˜λ¦¬

 

βš™οΈκ°œλ°œ ν™˜κ²½

  • Gradle
  • Kotlin 1.6.21
  • Springboot 2.7.5
  • Mysql (AWS RDS)
  • Spring Data JPA

 

πŸ› οΈν”„λ‘œμ νŠΈ ꡬ쑰

  • DTO : 계측 κ°„ 데이터 전솑을 μœ„ν•œ 객체 생성
  • Entity : 도메인 λͺ¨λΈ
  • Mapper μΈν„°νŽ˜μ΄μŠ€ / 클래슀 : 객체와 DTO κ°„μ˜ λ³€ν™˜μ„ λ•λŠ” λ©”μ„œλ“œ μž‘μ„± ( fromEntity(ENTITY) , toEntity(DTO) )
  • Repository μΈν„°νŽ˜μ΄μŠ€ : JpaRepository - JPA κ΄€λ ¨ μž‘μ—…λ“€μ„ λ³„λ„μ˜ μ½”λ“œ 없이 처리 κ°€λŠ₯ν•˜κ²Œ 도움
  • Service : λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 처리
  • Exception : μ˜ˆμ™Έ 처리
  • Resource : 컨트둀러

 


POSTMAN API TEST

 

β–Ά 랜덀 찌개 μΆ”μ²œ

request
response

 

 

[Kotlin] λͺ©λ‘μ—μ„œ 랜덀으둜 1개만 κ°€μ Έμ˜€κΈ° (response : objectDTO)

DB 에 μ €μž₯된 찌개 λͺ©λ‘μ€‘μ—μ„œ 랜덀으둜 1κ°€μ§€λ§Œ κ°€μ Έμ˜€λŠ” λ©”μ„œλ“œ getRandomJjigae() λ₯Ό λ§Œλ“€μ–΄λ³΄κ² λ‹€. 1. λͺ¨λ“  찌개 정보 κ°€μ Έμ˜€κΈ° 2. 찌개의 Id만 List 에 λ‹΄κΈ° 3. List 에 λ‹΄κΈ΄ id 쀑 랜덀으둜 1개 κ³ λ₯΄κΈ° (

feelfreetothink.tistory.com

 

 

β–Ά new 찌개 등둝

request
response

 

Exception : auto_increment 인 id λ₯Ό 직접 μž…λ ₯ν•œλ‹€λ©΄ ? 

 γ„΄ JjigaeException λ°œμƒ : message "Id must be null"

 

 

β–Ά λͺ¨λ“  찌개 List κ°€μ Έμ˜€κΈ°

request
response

Exception : λ“±λ‘λœ Object κ°€ μ—†λ‹€λ©΄ ? 

 γ„΄ JjigaeException λ°œμƒ : message "List of Jjigae is empty"

 

β–Ά 찌개 μˆ˜μ •ν•˜κΈ°

before and after

 

Exception : ν•΄λ‹Ή Object λ₯Ό 찾을 수 μ—†μ–΄ μˆ˜μ •μ΄ λΆˆκ°€ν•˜λ‹€λ©΄ ?

 γ„΄ JjigaeException λ°œμƒ : message "Jjigae with id ${jjigaeDTO.id} id not present"

 

β–Ά 찌개 μ‚­μ œν•˜κΈ°

Exception : ν•΄λ‹Ή Object λ₯Ό 찾을 수 μ—†μ–΄ μ‚­μ œκ°€ λΆˆκ°€ν•˜λ‹€λ©΄ ?

 γ„΄ JjigaeException λ°œμƒ : message "Jjigae with id $id is not present"