Web APIs λ””μžμΈ πŸ’© vs πŸ‘

Web APIs의 기본

λŒ€λΆ€λΆ„ REST의 νŠΉμ§•μ€ http ν”„λ‘œν† μ½œκ³Ό ν‘œμ€€ν™”λœ λ°©μ‹λ§Œ 잘 따라가면, μ•Œμ•„μ„œ λ”°λΌμ˜€λŠ” 이점이 있고, hypermedia νŠΉμ§•μ€ μ•„ν‚€ν…μ²˜λ₯Ό μž‘μ„±ν•˜κΈ°κ°€ μ–΄λ ΅κ³  κ·Έλ ‡κ²Œ ν•˜λŠ” 곳은 λ§Žμ§€ μ•Šλ‹€.

web APIλ₯Ό λ””μžμΈν• λ•ŒλŠ” μ„œλ²„μ— μžˆλŠ” νŠΉμ •ν•œ 데이터λ₯Ό ν΄λΌμ΄μ–ΈνŠΈκ°€ μ½κ±°λ‚˜ λ§Œλ“€κ±°λ‚˜ μ—…λ°μ΄νŠΈν•˜κ±°λ‚˜ μ‚­μ œν•˜λŠ” 기본적인 λ™μž‘μ„ 지원해주면 λœλ‹€. (CRUD)

이λ₯Ό HTTP λ©”μ„œλ“œμ™€ λΉ„μœ ν•΄λ³΄λ©΄ μ•„λž˜ κ·Έλ¦Όκ³Ό κ°™λ‹€


μ£Όμ˜ν•  사항

  • API μ΄λ¦„μ—λŠ” μ•‘μ…˜(λ©”μ„œλ“œ)에 λŒ€ν•œ λ‚΄μš©μ€ μƒλž΅ν•΄μ•Όν•œλ‹€.
    • GET /posts/getPosts (🚫)
    • GET /posts (βœ…)
  • url 이름과 μ•‘μ…˜(λ©”μ„œλ“œ)κ°€ 클리어 ν•΄μ•Όν•œλ‹€.
    • GET /posts/createPost (GET λ©”μ„œλ“œμ§€λ§Œ, ν¬μŠ€νŒ…μ„ 생성함 / λ©”μ„œλ“œμ— λŒ€ν•œ 정보가 url에 쑴재)(🚫)
    • POST /posts (βœ…)
    • PUT /posts/1 (아이디 1번 λ¦¬μ†ŒμŠ€ μ—…λ°μ΄νŠΈ)(βœ…)
    • DELETE /posts/1 (1번 λ¦¬μ†ŒμŠ€ μ‚­μ œ)(βœ…)
  • μš”μ²­ν•˜λŠ” ꢁ극적으둜 κ°€μ Έμ˜€λ €κ³  ν•˜λŠ” 것은 λͺ…ν™•ν•΄μ•Όν•œλ‹€.
    • GET /posts/1/tags (🚫)
    • GET /tags/?postId=1 (βœ…)
    • GET /tags/?query=cool (βœ…)

Youtube 의 API 참고

https://developers.google.com/youtube/v3/docs/videos/list

Youtube APIλ₯Ό ν™•μΈν•˜λ©΄, λͺ¨λ“  μ‚¬μš©κ°€λŠ₯ν•œ Hypermedia 링크가 api 응닡에 λ“€μ–΄κ°€μžˆμ§€μ•Šμ€ 것을 확인할 수 μžˆλ‹€. REST νŠΉμ§• 쀑 Hypermedia 룰을 λ”°λ₯΄μ§€ μ•ŠλŠ” 것이 μΌλ°˜μ μ΄λ‹€.

REST API의 원칙을 μΆ©μ‹€νžˆ λ”°λ₯΄λŠ” Github API

https://developer.github.com/v3/

μ‚¬μš©κ°€λŠ₯ν•œ λͺ¨λ“  url에 λŒ€ν•œ 정보λ₯Ό μ‘λ‹΅κ°’μœΌλ‘œ 전달해쀀닀. (REST Hypermedia λ£°)