Back-end

Rest API?

WithSeungRyu 2020. 8. 29. 15:55

Spring Boot - What is Rest API?

πŸ’‘ Restλž€?

​

  • μ›Ήκ³Ό 같은 λΆ„μ‚° ν•˜μ΄νΌλ―Έλ””μ–΄ μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©ν•˜λŠ” 톡신 λ„€νŠΈμ›Œν¬ μ•„ν‚€ν…μ²˜
  • HTTP와 URI의 λ‹¨μˆœν•˜κ³  κ°„κ²°ν•œ μž₯점을 κ³„μŠΉν•œ Network 아킀텍쳐
  • μ°Έκ³  : 

https://meetup.toast.com/posts/92

 

πŸ’‘ Restκ°€ λ§Œλ“€μ–΄μ§„ λͺ©μ 

  • κ΅¬μ„±μš”μ†Œ μƒν˜Έμž‘μš©μ˜ 규λͺ¨ ν™•μž₯μ„±
  • μΈν„°νŽ˜μ΄μŠ€μ˜ λ²”μš©μ„±
  • κ΅¬μ„±μš”μ†Œμ˜ 독립적인 배포
  • 쀑간적 κ΅¬μ„±μš”μ†Œλ₯Ό μ΄μš©ν•œ 응닡 μ§€μ—° κ°μ†Œ, λ³΄μ•ˆ κ°•ν™”, λ ˆκ±°μ‹œ μ‹œμŠ€ν…œ μΈμΊ‘μŠλ ˆμ΄μ…˜

Rest API μ„€κ³„ν•˜κΈ°

  • μžμ› : URI
  • ν–‰μœ„ : HTTP λ©”μ†Œλ“œ
  • ν‘œν˜„ : λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ ν‘œν˜„ (HTTP Message Body)

πŸ’‘ URI 섀계

URIλŠ” URL을 ν¬ν•¨ν•œ κ°œλ…

URL : μ›Ήμƒμ˜ 파일 μœ„μΉ˜λ₯Ό ν‘œν˜„ -> http://localahost8080/api/book.pdf

URI : 웹에 μžˆλŠ” μžμ›μ˜ 이름과 μœ„μΉ˜λ₯Ό 식별 -> http://localhost:8080/api/book/1

  • URI λŠ” λͺ…사λ₯Ό μ‚¬μš©ν•˜λ©° 동사λ₯Ό ν”Όν•΄μ£Όμž. 동사λ₯Ό μ“°μ§€ μ•Šκ³  HTTP λ©”μ†Œλ“œλ‘œ λŒ€μ²΄λ₯Ό ν•΄μ€˜μ•Όν•œλ‹€.

  • λ³΅μˆ˜ν˜•μ„ μ‚¬μš©ν•˜μž.

  • μ»¬λ ‰μ…˜μœΌλ‘œ URIλ₯Ό μ‚¬μš©ν•  경우 μ»¬λ ‰μ…˜μ„ ν•œλ²ˆ 더 감싼 μ€‘μ²©ν˜•μ‹μœΌλ‘œ μ‚¬μš©ν•˜μž -> μΆ”ν›„ μˆ˜μ •, ν™•μž₯ μ‹œ λ²ˆκ±°λ‘œμ›€μ„ μ—†μ•°

__쀑첩 μ „ __

{
    { 
        books: ...
    },
    {
        stores: ...
    }

}

쀑첩 ν›„

{
    _embedded: [
        {
            books:...
        },
        {
            stores:...
        },
    ]
}

πŸ’‘ ν–‰μœ„μ„€κ³„

  • booksλ₯Ό κ°–κ³  ν–‰μœ„λ₯Ό μ„€κ³„ν•œλ‹€κ³  ν•˜μž

  • book λͺ©λ‘μ„ 보기 μœ„ν•΄μ„œλŠ” GET(read)λ₯Ό μ‚¬μš©ν•΄μ•Όν•˜λ©°, book을 μΆ”κ°€ν•˜κΈ° μœ„ν•΄μ„œλŠ” POST(create)λ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€.

  • μ΄λ ‡κ²Œ GET, POST, PUT, DELETEλ₯Ό μ•Œλ§žκ²Œ κΈ°λŠ₯에 맞좰 λ§Œλ“€μ–΄μ€˜μ•Ό ν•œλ‹€.

(μ˜ˆμ‹œ) booksλ₯Ό κ²Œμ‹œνŒμ— ν‘œν˜„ν•  λ•Œ νŽ˜μ΄μ§•μ„ μ²˜λ¦¬ν•˜λŠ” 값을 μΆ”κ°€ν•΄μ£Όμž

JPA의 pageable의 ν”„λ‘œνΌν‹°κ°’μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.

GET http://localhost:8080/api/books?page=0&size=10&sort=desc

 

 

λ°˜μ‘ν˜•