๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ๊ณต๋ถ€

REST API์™€ URI ์„ค๊ณ„ ๊ทœ์น™

by syLim___ 2023. 8. 11.
728x90

 

โœ… API๋ž€?

 

 - Application Programming Interface

 

 - ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

    ( ์˜ˆ๋ฅผ ๋“ค๋ฉด , ์šฐ๋ฆฌ๋Š” API๋ฅผ ์ด์šฉํ•˜์—ฌ ํœด๋Œ€ํฐ์˜ ๋ณผ๋ฅจ์„ ์กฐ์ ˆํ•˜๋Š” ๊ธฐ๋Šฅ, ํ™”๋ฉด์„ ๊ป๋‹ค ์ผœ๋Š” ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. )

 

  - ์„œ๋กœ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๋ผ๋ฆฌ ์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

  - ์ฆ‰, ํ•œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ช…์‹œํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

 

โœ… REST API ํ•„์š”์„ฑ

 

์›น์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ,

์Šค๋งˆํŠธํฐ, ํƒœ๋ธ”๋ฆฟ, ์Šค๋งˆํŠธ ์›Œ์น˜, ์„ผ์„œ, CCTV ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ๋“ค์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

 

์›น ์„œ๋ฒ„๋Š” ์ด์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋“ค์— ์š”์ฒญ์— ๋Œ€ํ•ด ์ ์ ˆํžˆ ์‘๋‹ตํ•ด์•ผ ํ•œ๋‹ค.

๋‹ค์‹œ ๋งํ•ด, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ข…๋ฅ˜์™€ ์ƒ๊ด€ ์—†์ด ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ™์€ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐœ๋…์ด ๋ฐ”๋กœ REST API์ด๋‹ค.

 

 

โœ… REST๋ž€?

 

 - Representational State Transfer

 

 - ์›น ์„œ๋น„์Šค์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ์  ์Šคํƒ€์ผ์„ ์˜๋ฏธํ•œ๋‹ค.

 

 - HTTP ์˜ ์žฅ์ ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜์ด๋‹ค.

 

 - HTTP URI๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋ช…์‹œํ•˜๊ณ , HTTP Method๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›์— ๋Œ€ํ•œ ๋™์ž‘์„ ๋ช…์‹œํ•˜๋Š” ํ˜•์‹์ด๋‹ค.

 


โœ… REST API๋ž€?

 

 - ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ๋„๋ฆฌ ์ด์šฉ๋˜๋Š”, REST ํ˜•์‹์„ ๋”ฐ๋ฅด๋Š” API

 

 - ๊ธฐ๊ณ„์™€ ๊ธฐ๊ณ„๊ฐ€ ์ธํ„ฐ๋„ท ๋˜๋Š” ์›น์œผ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ (์ฆ‰, ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ) ํ•ด์ฃผ๋Š” ๊ทœ๊ฒฉํ™”๋œ ํ†ต์‹  ๊ทœ์น™.

 

 - ์›น ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ทฐํŽ˜์ด์ง€๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€์‹  ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ,

    ํด๋ผ์ด์–ธํŠธ์˜ ์ข…๋ฅ˜์— ์ƒ๊ด€ ์—†์ด ์›น ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

 

 - ๋ฐ˜ํ™˜๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๋กœ XML์ด๋‚˜ JSON ํ˜•ํƒœ์ด๋‹ค. (์š”์ฆ˜์—๋Š” ๋Œ€๋ถ€๋ถ„ JSON)

 

 - ๊ฐ ์š”์ฒญ์ด ์–ด๋–ค ๋™์ž‘์ด๋‚˜ ์ •๋ณด๋ฅผ ์œ„ํ•œ ์š”์ฒญ์ธ์ง€ , ์ฆ‰ ์š”์ฒญ์˜ ๋ชฉ์ ์„ ์š”์ฒญ ์ฃผ์†Œ(URL)์˜ ๋ชจ์–‘๋งŒ ๋ณด๊ณ  ํŒŒ์•… ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด ํฐ ํŠน์ง•์ด๋‹ค!

 

 

 - REST API๋Š” HTTP ๊ทœ์•ฝ์„ ๋”ฐ๋ฅธ๋‹ค. ( โ–ถ๏ธ HTTP ๊ด€๋ จ ํฌ์ŠคํŒ… ๋ณด๋Ÿฌ๊ฐ€๊ธฐ )

 - HTTP์—๋Š” ๊ฐ ๋ชฉ์ ์— ๋”ฐ๋ฅธ ์š”์ฒญ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๋“ค์ด ์žˆ๋‹ค.

 - REST API์—์„œ๋Š” CRUD์˜ ๊ฐ ๋ชฉ์ ์— ๋”ฐ๋ผ ์•„๋ž˜ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ฃผ๋กœ ํ™œ์šฉํ•œ๋‹ค.

 

๋ชฉ์ (๊ธฐ๋Šฅ) HTTP ๋ฉ”์†Œ๋“œ
Create POST
Read GET
Update PUT (์ „์ฒด ๋‚ด์šฉ ๋ณ€๊ฒฝ)
PATCH (๋ถ€๋ถ„ ๋ณ€๊ฒฝ)
Delete DELETE

 


* ์ •๋ฆฌํ•˜๋ฉด

    REST๋ž€, HTTP ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์–ด๋–ค URI์— ์–ด๋–ค ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๋ช…์‹œํ•˜๋Š” ํ˜•์‹์ด๋‹ค.

    REST API๋ž€, REST ํ˜•์‹์„ ๋”ฐ๋ฅด๋Š” API์ด๋‹ค.

 


โœ… REST API ์„ค๊ณ„ ๊ทœ์น™

 

 - REST API์˜ ์ž์› ํ‘œํ˜„์„ ์œ„ํ•œ URI ์„ค๊ณ„ ๊ทœ์น™์ด ์กด์žฌํ•œ๋‹ค.

 

 -  ์•„๋ž˜์˜ ์„ค๊ณ„ ๊ทœ์น™๋“ค์— ๋”ฐ๋ผ URI๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 

    โœ๏ธ ์†Œ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•œ๋‹ค (URI๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ฏ€๋กœ, ํ˜ผ๋™์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ)

 

    โœ๏ธ ์–ธ๋”๋ฐ”(_) ๋Œ€์‹  ํ•˜์ดํ”ˆ(-)์„ ์‚ฌ์šฉํ•œ๋‹ค

 

    โœ๏ธ ๊ธด URI์—์„œ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ•˜์ดํ”ˆ(-)์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค

http://catromi.tistory.com/v1/posts/thisismyfirstpost # โŒ ์ž˜๋ชป๋œ ์˜ˆ

http://catromi.tistory.com/v1/posts/this-is-my-first-post # ๐ŸŸข ์ข‹์€ ์˜ˆ

 

    โœ๏ธ ํ™•์žฅ์ž๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค

http://catromi.tistory.com/v1/bear.jpg	# โŒ ์ž˜๋ชป๋œ ์˜ˆ

http://catromi.tistory.com/v1/bear	# ๐ŸŸข ์ข‹์€ ์˜ˆ

 

    โœ๏ธ ๋งจ ๋’ค์— ์Šฌ๋ž˜์‹œ(/)๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค. ์Šฌ๋ž˜์‹œ๋Š” ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

    โœ๏ธ ํ–‰์œ„๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค

GET http://catromi.tistory.com/v1/get/1	# โŒ ์ž˜๋ชป๋œ ์˜ˆ

GET http://catromi.tistory.com/v1/1	# ๐ŸŸข ์ข‹์€ ์˜ˆ

 

    โœ๏ธ ๋ฆฌ์†Œ์Šค์—๋Š” ํ˜•์šฉ์‚ฌ๋‚˜ ๋™์‚ฌ๊ฐ€ ์•„๋‹Œ ๋ช…์‚ฌ๋ฅผ ํ™œ์šฉํ•œ๋‹ค. (์ปจํŠธ๋กค ์ž์›์„ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์˜ˆ์™ธ์ ์œผ๋กœ ๋™์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค)

http://catromi.tistory.com/getUsers # โŒ ์ž˜๋ชป๋œ ์˜ˆ

http://catromi.tistory.com/users # ๐ŸŸข ์ข‹์€ ์˜ˆ

 

    โœ๏ธ URI์—์„œ๋Š” ํ•ญ์ƒ ๋‹จ์ˆ˜ํ˜• ๋Œ€์‹  ๋ณต์ˆ˜ํ˜•์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

http://api.college.com/students/3248234/course # โŒ ์ž˜๋ชป๋œ ์˜ˆ

http://api.college.com/students/3248234/courses # ๐ŸŸข ์ข‹์€ ์˜ˆ

 

 


โœ… Reference

728x90