βοΈ API μ Server API
π API
νλ‘κ·Έλ¨μ λͺ
λ Ή λͺ©λ‘μ μ 리νκ³ μμ©νλ‘κ·Έλ¨κ³Ό μνΈμμ©νμ¬ λͺ
λ Ήμ λν κ°μ μ λ¬νλ€.
π Server API
μμ²μ λ§λ μλ΅μ λλλ €μ£Όλ EndPoint
λ₯Ό μΉμ ν΅ν΄ λ
ΈμΆμν¨ κ²μ λ§νλ€.
π EndPoint
APIκ° μλ²μμ 리μμ€μ μ κ·Όν μ μκ² νλ URL
μ΄λ€.
βοΈ REST API μ΄ν΄νκΈ°
1. REST μ REST API
- REpresentational State Transfer
π 리μμ€μ ννμ λν μν μ λ¬
- λͺ¨λ 리μμ€λ₯Ό νλμ
EndPoint
λ‘ μ°κ²°νκ³ λ¦¬μμ€λ§λ€ κ° EndPoint
λ‘ κ΄λ¦¬νλ λ€νΈμν¬ κΈ°λ° μν€ν
μ²λ₯Ό λ§νλ€.
HTTP URI
λ‘ λ¦¬μμ€λ₯Ό λͺ
μνκ³ HTTP METHOD
λ₯Ό ν΅ν΄ 리μμ€μ λν CRUD Operation
μ μ μ©ν κ²μ μλ―Ένλ€.
π URIλ 리μμ€λ₯Ό μλ³νκ³ λνλ΄λ μ£Όμλ₯Ό λ§νλ€.
π URIλ URL
κ³Ό URN
μ ν¬ν¨ν κ°λ
μ΄λ€.
2. μ₯μ κ³Ό λ¨μ
β
μ₯μ
- μλλ₯Ό λͺ
νν νμ
ν μ μλ€.
- HTTP νλ‘ν μ½μ μ¬μ©νμ¬ μΈνλΌλ₯Ό ꡬμΆνμ§ μμλ λλ€.
stateless
νΉμ§μ λ°λΌ μλ²κ° ν΄λΌμ΄μΈνΈ λ¬Έλ§₯μ μ μ§ν νμκ° μμ΄ μλ²μ ν΄λΌμ΄μΈνΈκ° λΆλ¦¬λλ€.
π μ
무λ κ°μμ HTTP νμ€μ λ°λ₯΄λ λ€μν νλ«νΌμμ νΈνμ΄ κ°λ₯νλ€.
βοΈ λ¨μ
- μ¬μ©ν μ μλ
METHOD
ννκ° μ νμ μ΄λ€.
- νμ€μ΄ μ‘΄μ¬νμ§ μλλ€.
βοΈ GraphQL μ΄ν΄νκΈ°
1. λ°°κ²½
- νμ΄μ€λΆμμ κ°λ°ν
Query Language
λ€.
π Query Languageλ μ 보λ₯Ό μ»κΈ° μν μ§μλ¬Έμ λ§λ€κΈ° μν΄ μ¬μ©λλ μ»΄ν¨ν° μΈμ΄λ€.
- REST API ν΅μ μ νκ³λ‘ μΈν΄ νμνκ² λλ€.
π νΉμ κΈ°λ₯, μμ²μ λ°λΌ μ¬λ¬λ² APIκ° νΈμΆλκ±°λ μλ‘μ΄ APIλ₯Ό λ§λ€μ΄μΌνλ€.
π κ΄λ¦¬ν΄μΌν EndPoint
μ¦κ°λ‘ μΈν λ¬Έμ κ° λ°μνλ€.
2. νΉμ§
- λ¨ νλμ
EndPoint
λ§ μ‘΄μ¬νμ¬ νλ²μ μμ²μΌλ‘ λͺ¨λ μ 보λ₯Ό κ°μ Έμ¨λ€.
- Queryλ¬Έμ λ°λΌ λ€λ₯Έ μλ΅κ΅¬μ‘°λ₯Ό κ°μ§λ€.
- Client-Side μ Server-Side λͺ¨λ ν΅μ μ μ£Όκ³ λ°μ μ μλ€.
3. μ₯μ κ³Ό λ¨μ
β
μ₯μ
- νλμ EndPointλ§ κ°μ§κΈ° λλ¬Έμ μμ²νμκ° μ€μ΄λ€κ³ μ μ§λ³΄μκ° μ©μ΄ν΄μ‘λ€.
- μνλ μ λ³΄λ§ μμ²νμ¬
Overfetching
, Underfetching
λ¬Έμ λ₯Ό ν΄κ²°νλ€.
π Overfetching : μνλ λ°μ΄ν° μ΄μμΌλ‘ λ°λ κ²
π Underfetching : μνλ λ°μ΄ν°λ₯Ό μμ²νκΈ° μν΄ μ¬λ¬λ² μμ²νλ κ²
βοΈ λ¨μ
HTTP
μ μΊμ± μ λ΅μ κ°κ°μ URL
μ μ λ§λ€μ μ μ±
μ μ€μ νλ νμμΌλ‘ μ΄λ£¨μ΄μ Έ GraphQL νΉμ±μ κ·Έλλ‘ μ¬μ©ν μ μλ€.
π GraphQLλ§μ μΊμ± λ°©μμΈ μμ쿼리, μν΄λ‘ μμ§ λ±μ΄ μλ€.
- μμ±λ λͺ
μΈκ° μ‘΄μ¬νμ§ μλλ€.
π νμΌμ
λ‘λλ₯Ό μ§μ ꡬνν΄μΌνλ€.
- ν΄λΌμ΄μΈνΈκ° νμν λ°μ΄ν°λ₯Ό κ²°μ νκΈ° λλ¬Έμ μλͺ»λ μμ²μ νν°λ§νκΈ° κΉλ€λ‘λ€.