ν°μ€ν 리 λ·°
π OPEN API?
OPEN APIλ νλ‘κ·Έλλ°μμ μ¬μ©ν μ μλ κ°λ°©λμ΄ μλ μνμ Interface(μ½μ)λ€.
λλΆλΆμ OPEN APIλ RESTλ°©μμΌλ‘ μ§μλλ€.
π REST API?
RESTλ 'Representational State Transfer'μ μ½μ΄λ‘,
νλμ URIλ νλμ κ³ μ ν 리μμ€(Resource)λ₯Ό λννλλ‘ μ€κ³λλ€λ κ°λ μ μ μ‘λ°©μμ κ²°ν©ν΄μ μνλ μμ μ μ§μ νλ€.
HTTP URIλ₯Ό ν΅ν΄ μ μ΄ν μμ(Resource)λ₯Ό λͺ μνκ³ , HTTP Method(GET, POST, PUT, DELETE)μ ν΅ν΄
ν΄λΉ μμ(Resource)λ₯Ό μ μ΄νλ λͺ λ Ήμ λ΄λ¦¬λ λ°©μμ μν€ν μ²μ΄λ€.
βοΈREST ꡬμ±.
βͺοΈ μμ (Resource) - URI
βͺοΈ νμ (Verb) - HTTP Method
βͺοΈ νν (Representations)
μ ννλ HTTP URIλ‘ λ¦¬μμ€λ₯Ό μ μνκ³ HTTP methodλ‘ λ¦¬μμ€μ λν νμλ₯Ό μ μνλ€.
리μμ€λ JSON, XMLκ³Ό κ°μ μ¬λ¬κ°μ§ μΈμ΄λ‘ ννν μ μλ€.
βοΈ κΈ°μ‘΄ Serviceμ REST Service
βͺοΈ κΈ°μ‘΄ Service : μμ²μ λν μ²λ¦¬λ₯Ό ν ν κ°κ³΅λ dataλ₯Ό μ΄μ©νμ¬ νΉμ νλ«νΌ(Python, Java, C...)μ μ ν©ν ννμ Viewλ‘ λ§λ€μ΄μ λ°ν.
βͺοΈ REST Service : data μ²λ¦¬λ§ νλ€κ±°λ, μ²λ¦¬ ν λ°νλ dataκ° μλ€λ©΄ JSONμ΄λ XML νμ(μΈμ΄μ μ’ μμ μ΄μ§ μμ)μΌλ‘ μ λ¬. Viewμ λν΄μλ μ κ²½ μΈ νμκ° μλ€. ==> μ΄λ¬ν μ΄μ λ‘ Open APIμμ λ§μ΄ μ¬μ©.
π REST.
βͺοΈ κΈ°μ‘΄μ μ μ‘λ°©μκ³Όλ λ¬λ¦¬ μλ²λ μμ²μΌλ‘ λ°μ 리μμ€μ λν΄ μμν λ°μ΄ν°λ₯Ό μ μ‘νλ€.
βͺοΈ κΈ°μ‘΄μ GET/POST μΈμ PUT, DELETE λ°©μμ μ¬μ©νμ¬ λ¦¬μμ€μ λν CRUD μ²λ¦¬λ₯Ό ν μ μλ€.
βͺοΈ HTTP URIλ₯Ό ν΅ν΄ μ μ΄ν μμ(Resource)μ λͺ μνκ³ , HTTP METHOD(GET/POST/PUT/DELETE)λ₯Ό ν΅ν΄
ν΄λΉ μμμ μ μ΄νλ λͺ λ Ήμ λ΄λ¦¬λ λ°©μμ Architectureμ΄λ€.
βͺοΈ κ°μ₯ ν° λ¨μ μ λ± μ ν΄μ§ νμ€μ΄ μμ΄ μ묡μ μΈ νμ€λ§ μ ν΄μ Έ μλ€.
- μΈλλ°(_)λ μ¬μ©νμ§ μλλ€. (κ°λ μ±)
- νΉλ³ κ²½μ° μ μΈνκ³ λλ¬Έμ μ¬μ©νμ§ μλλ€.
- URI λ§μ§λ§μ μ¬λμ(/)λ₯Ό μ¬μ©νμ§ μλλ€.
- μ¬λμ(/)λ‘ κ³μΈ΅ κ΄κ³λ₯Ό λνλΈλ€.
- νμ₯μκ° ν¬ν¨λ νμΌ μ΄λ¦μ μ§μ ν¬ν¨μν€μ§ μλλ€.
- URIλ λͺ μ¬λ₯Ό μ¬μ©νλ€.
βοΈ REST κ΄λ ¨ Annotation.
βͺοΈ @RestController
: Controllerκ° REST λ°©μμ μ²λ¦¬νκΈ° μν κ²μμ λͺ μ.
βͺοΈ @ResponseBody
: JSP κ°μ λ·°λ‘ μ λ¬λλ κ²μ΄ μλλΌ λ°μ΄ν° μ체λ₯Ό μ λ¬.
βͺοΈ @PathVariable
: URL κ²½λ‘μ μλ κ°μ νλΌλ―Έν°λ‘ μΆμΆ.
βͺοΈ @CrossOrigin
: Ajaxμ ν¬λ‘μ€ λλ©μΈ λ¬Έμ λ₯Ό ν΄κ²°.
=> μ΄ μ»¨νΈλ‘€λ¬λ₯Ό μ무λ μ μνλ©΄ μλλ κ²½μ°, λꡬνν λ§ μ°κ²°μ ν΄μ£Όκ² λ€ νλ κ²½μ° @CrossOrigin(urlμ€μ )μ νμ¬
μ΄ urlμ ν΄λΉνλ κ³³μ μ κ·Όν μ μμ§λ§ μ΄κ²μ΄ μλ μ λ€μ μ κ·Όμ λͺ»νλλ‘ νλ€. (보μμ μΈ‘λ©΄)
βͺοΈ @RequestBody
: JSON λ°μ΄ν°λ₯Ό μνλ νμ μΌλ‘ λ°μΈλ©.
=> κΈ°μ‘΄μλ Dtoλ₯Ό λ°λλ° DtoλΌ μ€μ ν΄λκ³ μ μͺ½μμ λ겨주λ νλΌλ―Έν° μ΄λ¦κ³Ό Dtoκ° κ°μ§κ³ μλ νλ‘νΌν° μ΄λ¦μ λκ°μ΄ λ§μΆ°μ£Όλ©΄ μμμ λ€μ΄κ°λ€. μ΄λ²μλ νλΌλ―Έν°λ‘ λμ΄μ€λκ² μλλΌ Ajaxμ JSON ννλ‘ λμ΄μ¨λ€. json ννλ‘ λμ΄μ¨ κ°λ€μ dtoμλ€ λ°μ λ @RequestBodyν΄μ νλΌλ―Έν° μ΄λ¦μ΄ μλλΌ Json Objectλ‘ λ³΄λ΄μ€ κ°μ Dtoμ νλΌλ―Έν°λ‘ λ§€νμμΌμ£Όλ μν μ νλ€.
'Web κ°λ° > Spring' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
POJO JAVAλ? (0) | 2022.06.03 |
---|---|
κ°μ²΄μ§ν₯ μ€κ³ 5μμΉ SOLID (0) | 2022.06.03 |
κ°μ²΄μ§ν₯μ 4λ νΉμ± - μΊ‘μν, μμ, λ€νμ±, μΆμν (0) | 2022.06.03 |
[Spring] Spring Boot κ°λ (0) | 2022.04.27 |
[Spring] MVC νλ μμν¬ λμ λ°©μ (0) | 2022.04.20 |
- Total
- Today
- Yesterday