nonneng.ee
Daeun-rithm
nonneng.ee
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (51)
    • Back-end (17)
      • Server (3)
      • Database (3)
      • Spring (9)
      • Node.js (1)
    • Book (1)
      • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” (0)
      • ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ (1)
    • Algorithm (1)
      • Greedy, Implementation (6)
      • Dynamic Programming (5)
      • Data Structure (3)
      • Sorting (2)
      • Concept (1)
    • TIL (11)
    • Software (3)
      • Design Pattern (3)
    • Computer Science (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์•„์ดํ…œ8
  • ํŒŒ์ด์ฌ
  • ์ž๋ฐ”
  • API
  • node js
  • MySQL
  • ๋ฐฑ์ค€
  • ๊ตฌํ˜„
  • DP
  • APM
  • ๊ตฌ๋™์›๋ฆฌ
  • Postman
  • ์„œ๋ฒ„
  • Java
  • ๊ฐ€์ƒ๋จธ์‹ 
  • ๋ธŒ๋ฃจํŠธํฌ์Šค
  • JPA
  • ์šฐ๋ถ„ํˆฌ
  • Restful API
  • jwt
  • ์•„์ดํ…œ 23
  • ์ˆ˜๋™์„ค์น˜
  • ์†Œ์Šค์„ค์น˜
  • ์•„์ดํ…œ9
  • ์•„์ดํ…œ 25
  • ์•„์ดํ…œ6
  • ์—๋Ÿฌ
  • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ”
  • ์ปดํŒŒ์ผ์„ค์น˜
  • Spring

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
nonneng.ee

Daeun-rithm

Back-end/Server

[Network] REST API ์„ค๊ณ„ํ•˜๊ธฐ

2021. 8. 14. 03:15

๐Ÿ’ก 1. API๋ž€?

Application Programming Interface

API ๊ตฌ๋™์›๋ฆฌ

api๊ทธ๋ฆผ

Route : ์™ธ๋ถ€์—์„œ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹น URI์— ๋งž๋Š” Controller๋กœ ์—ฐ๊ฒฐ
โ†” ํ‚ค์˜ค์Šคํฌ๊ฐ€ ์ฃผ๋ฌธ์„ ๋ฐ›์•„์„œ ์ข…์—…์›์—๊ฒŒ ์ฃผ๋ฌธ ์ „๋‹ฌ

Controller : Route๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ , Service / Provider์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ฃผ์–ด ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ, validationํ™•์ธ (ํŠธ๋žœ์žญ์…˜, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ)
โ†” ์ข…์—…์›์€ ์ฃผ๋ฌธ์ด ์ ์ ˆํ•œ์ง€, ๋ˆ„๋ฝ๋œ ์‚ฌํ•ญ์€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์š”๋ฆฌ์‚ฌ์—๊ฒŒ ์ฃผ๋ฌธ ์ „๋‹ฌ

Service / Provider : ์‹ค์ œ ํ•ต์‹ฌ์ ์œผ๋กœ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜์—ญ

Dao : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์‹ค์งˆ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด โ†’ ์ฟผ๋ฆฌ ์ˆ˜ํ–‰
โ†” ์š”๋ฆฌ์‚ฌ๋Š” ์š”๋ฆฌ๋ฅผ ํ•˜๊ณ , ์ด ๊ณผ์ •์—์„œ ๋ƒ‰์žฅ๊ณ ์—์„œ ์žฌ๋ฃŒ๋ฅผ ๊บผ๋ƒ„ โ†’ ๋‹ค์‹œ ์ฃผ๋ฌธ์ž์—๊ฒŒ ์ „๋‹ฌ

API์˜ ์—ญํ• 

  • ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ˜•์‹์„ ์˜๋ฏธํ•œ๋‹ค.
  • HTTP URI๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ช…์‹œํ•˜๊ณ , ๋ฉ”์†Œ๋“œ(GET, POST, PUT, PATCH, DELETE)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ CRUD(Create, Read, Update, Delete) ํ•œ๋‹ค.
    โ†’ ๋ฉ”์†Œ๋“œ๋“ค์„ ํ†ตํ•ด HTTP์™€ ํ†ต์‹ ํ•œ๋‹ค.
    • GET : ์กฐํšŒ
    • POST : ์ƒ์„ฑ
    • PUT : ์ „์ฒด ์ˆ˜์ • (ํ…Œ์ด๋ธ” ์ „์ฒด ์ˆ˜์ •)
    • PATCH : ๋ถ€๋ถ„ ์ˆ˜์ • (ํŠน์ • ์นผ๋Ÿผ ์ˆ˜์ •)
    • DELETE : ์‚ญ์ œ

๐Ÿ’ก 2. ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ๋ฒ•

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ packetํ˜•ํƒœ๋กœ ๋‹ด์•„์„œ ์ „๋‹ฌํ•œ๋‹ค. packet์€ header์™€ body๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ๋ถ€์ˆ˜์ ์ธ ๋ฐ์ดํ„ฐ๋Š” header, ์ค‘์š”ํ•œ ์ง„์งœ ๋ฐ์ดํ„ฐ๋Š” body์— ๋‹ด์•„ ์ „๋‹ฌํ•œ๋‹ค.

Query String

  • key, value๊ฐ’์„ ํ†ตํ•ด ์ „๋‹ฌํ•˜๊ณ  ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹
  • URL ๋’ค์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•œ๋‹ค.
    โ†’ ๋ณด์—ฌ์ ธ๋„ ๋˜๋Š” ๊ฐ’๋“ค์„ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณด๋‚ธ๋‹ค.
http://daeunn.shop/app/users?userEmail=daeun@naver.com

์˜ค๋Š˜๋‚ ์”จ

Path Variable

  • URL ๋’ค์— /1, /2์™€ ๊ฐ™์ด ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์š”์ฒญํ•˜๊ณ  ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹
  • ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ํŠน์ •ํ•ด์„œ ๋ณด์—ฌ์ค˜์•ผ ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.
http://daeunn.shop/app/users/123

๐Ÿ’ก 3. REST API

REST API๋Š” ์›น์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ์œผ๋กœ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” API ์„ค๊ณ„๋ฐฉ์‹์œผ๋กœ, ์ด ๊ทœ์น™์ด ์ž˜ ์ง€์ผœ์ง„ API๋ฅผ Restful API๋ผ๊ณ  ํ•œ๋‹ค.

REST API ๊ตฌ์„ฑ

  • ์ž์›(Resource) : URI
  • ํ–‰์œ„(Verb) : HTTP Method

โ†’ URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„ํ•˜๊ณ , ์ด ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” Method๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•œ๋‹ค !

REST API ๊ทœ์น™

  1. URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„ / ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP Method๋กœ ํ‘œํ˜„
    โ†’ ๋™์‚ฌ๋ณด๋‹ค๋Š” ๋ช…์‚ฌํ˜•, ๋ณต์ˆ˜ํ˜• ์‚ฌ์šฉ
  2. ์Šฌ๋ž˜์‹œ ๊ตฌ๋ถ„์ž๋กœ ๊ณ„์ธต๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋ƒ„
  3. URI ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋กœ ์Šฌ๋ž˜์‹œ ์‚ฌ์šฉ X
http://daeunn/shop/app/users
  1. ํ•˜์ดํ”ˆ(-)์€ URI์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š”๋ฐ ์‚ฌ์šฉ (๋ฐ‘์ค„(_) ์‚ฌ์šฉ ์ง€์–‘)
  2. URI ๊ฒฝ๋กœ์—๋Š” ๋˜๋„๋ก ์†Œ๋ฌธ์ž ์‚ฌ์šฉ
  3. URI์— ํŒŒ์ผํ™•์žฅ์ž ํฌํ•จ X
http://daeunn/shop/app/users-daeun (O)
http://daeunn/shop/app/users_daeun (X)

์ฐธ๊ณ 

https://sanghaklee.tistory.com/57

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

'Back-end > Server' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Server] APM ์†Œ์Šค์„ค์น˜ - 2. MySQL  (0) 2021.07.30
[Server] APM ์†Œ์Šค์„ค์น˜ - 1. Apache  (2) 2021.07.22
    'Back-end/Server' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Server] APM ์†Œ์Šค์„ค์น˜ - 2. MySQL
    • [Server] APM ์†Œ์Šค์„ค์น˜ - 1. Apache
    nonneng.ee
    nonneng.ee

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”