๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

01/25(๋ชฉ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 24์ผ์ฐจ TIL - REST API

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 1. 25.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • REST

 

๐Ÿฅ”  REST

Representational State Transfer์˜ ์•ฝ์ž๋กœ, ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ.

 

  1. HTTP URI(Uniform Resource Identifier)๋ฅผ ํ†ตํ•ด ์ž์›(Resource)์„ ๋ช…์‹œํ•˜๊ณ ,
  2. HTTP Method(POST, GET, PUT, DELETE, PATCH ๋“ฑ)๋ฅผ ํ†ตํ•ด
  3. ํ•ด๋‹น ์ž์›(URI)์— ๋Œ€ํ•œ CRUD Operation์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

โ—๏ธ CRUD Operation

 

CRUD๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ง€๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ธ

Create(์ƒ์„ฑ), Read(์ฝ๊ธฐ), Update(๊ฐฑ์‹ ), Delete(์‚ญ์ œ)๋ฅผ ๋ฌถ์–ด์„œ ์ผ์ปซ๋Š” ๋ง๋กœ 
REST์—์„œ์˜ CRUD Operation ๋™์ž‘ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Create : ๋ฐ์ดํ„ฐ ์ƒ์„ฑ(POST)
 - POST : ๋“ฑ๋ก + a
Read : ๋ฐ์ดํ„ฐ ์กฐํšŒ(GET)
 - GET : ์กฐํšŒ
Update : ๋ฐ์ดํ„ฐ ์ˆ˜์ •(PUT, PATCH)
 - PUT : ์ „์ฒด ์ˆ˜์ •
 - PATCH : ์ผ๋ถ€ ์ˆ˜์ •
Delete : ๋ฐ์ดํ„ฐ ์‚ญ์ œ(DELETE)
 - DELETE : ์‚ญ์ œ

 

 

๐Ÿฅ”  REST API

REST API๋ž€ REST์˜ ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” API๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

ํ‘œ์ค€์€ ์—†์Šต๋‹ˆ๋‹ค. (์„ธ์„ธํ•œ ๋ถ€๋ถ„์ด ํšŒ์‚ฌ๋งˆ๋‹ค, ํŒ€๋งˆ๋‹ค, ์‚ฌ๋žŒ๋งˆ๋‹ค, ๋‚˜๋ผ๋งˆ๋‹ค, ๋ฌธํ™”๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค)

์†Œํ†ต์— ๋“œ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์“ฐ์ž…๋‹ˆ๋‹ค.

 

1. ๋™์‚ฌ๋ณด๋‹จ ๋ช…์‚ฌ๋ฅผ, ๋‹จ์ˆ˜๋ณด๋‹จ ๋ณต์ˆ˜๋ฅผ

/member/get/item/hello (x)

/members/items (o)

 

2. ๋งˆ์ง€๋ง‰์— / ๋„ฃ์ง€ ์•Š๊ธฐ

/members/ (x)

/members (o)

 

3. _ ๋Œ€์‹  - ์‚ฌ์šฉ + ๋Œ€๋ฌธ์ž ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ

/restful_services (x)

/restful-services (o)

 

4. ํ™•์žฅ์ž ํฌํ•จํ•˜์ง€ ์•Š๊ธฐ(svg, png, exe ๋“ฑ)

/image.svg (x)

/images (o)

 

5. ๊ณ„์ธตํ™”

/items/{memberId}/members/{itemId} (x)

/members/{memberId}/items/{itemId} (o)

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

REST์— ๋Œ€ํ•ด์„œ ๊ทธ๋ƒฅ ๋“ค์–ด๋งŒ ๋ดค์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์ฒ˜์Œ์ธ ๊ฒƒ ๊ฐ™์•„์„œ

ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค.