1. REST API
1.1. REST์ ๊ตฌ์ฑ
1.2. REST์ ํน์ง
1.3. REST ์ค๊ณ ์์น
2. RESTful API
3. HTTP ์์ฒญ ๋ฉ์๋
4. RESTful API ์์ฑ ์์
5. Restful API ์ธ์ ๋ค๋ฅธ API ์ํคํ ์ฒ ์คํ์ผ
5.1. SOAP API(Simple Object Access Protocol)
5.2. GraphQL API(Graph Query Language)
6. ์ถ์ฒ

'Restful API๋?' ์ด๋ผ๋ ์ง๋ฌธ์ ๋ต๋ณ์ ์ํ REST API์ ๋ํ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค.
RESTful API๋ ๊ฒฐ๊ตญ RESTํ๋ค๋ ์๋ฏธ์ธ๋ฐ, ๋จผ์ REST๊ฐ ์ด๋ค ์๋ฏธ์ธ์ง๋ถํฐ ์์์ผํ ํ์์ฑ์ด ์๊ฒ ๋ค.
1. REST API
REST API๋ HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ท์ ํ ์ํคํ ์ฒ
REST๋ REpresentational State Transfer์ ์ฝ์๋ก, ์์(Resource)์ ๋ํ ์์ฒญ์ ํ์(HTTP Method)๋ก ์ฒ๋ฆฌํ๋ค.
์ฃผ๋ก JSON, XML ํ์์ ๋ฐ์ดํฐ๋ก ๋ฐํ๋์ด ์ฒ๋ฆฌ๋๋ค.
1.1. REST์ ๊ตฌ์ฑ

- ์์(Resource) - URI (์๋ํฌ์ธํธ)
- ํ์(Verb) - HTTP Method (HTTP ์์ฒญ ๋ฉ์๋)
- ํํ(representations) - ํ์ด๋ก๋ (JSON,XML ๋ฑ์ ํฌ๋งท์ ํตํด ์ ๋ฌ)
1.2. REST์ ํน์ง

- Stateless(๋ฌด์ํ์ฑ): ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ์ ์งํ์ง ์๋๋ค. (์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ๋ง์ ์ฒ๋ฆฌ)
- Cacheable(์บ์ ๊ฐ๋ฅ): ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์๋ต์ ์บ์ฑ์ฒ๋ฆฌ ํ ์ ์๋ค.
- Uniform Interface(์ผ๊ด๋ ์ธํฐํ์ด์ค): ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ธํฐํ์ด์ค๋ ์ผ๊ด์ฑ ์๊ฒ ์ค๊ณ๋์ด์ผ ํ๋ค.
- Layered System(๊ณ์ธต ๊ตฌ์กฐ): ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ง์ ํต์ ํ๋ ๋์ ์ค๊ฐ ๊ณ์ธต(๋ก๋ ๋ฐธ๋ฐ์, ์บ์ ๋ฑ)์ ํตํด ํต์ ํ ์ ์๋ค.
- Code on Demand(์ ํ์ ์ฝ๋ ์ ์ก): ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์คํ ์ฝ๋๋ฅผ ์ ์กํ ์ ์๋ค.
1.3. REST ์ค๊ณ ์์น

- HTTP URI๋ฅผ ํตํด ์์์ ๋ช ์
- HTTP ๋ฉ์๋(GET,POST,PUT,DELETE)๋ฅผ ํตํด ํ์ ํํ
์ ๋ ๊ฐ์ง๊ฐ ์ ์ง์ผ์ก์ ๋ RESTfulํ๊ฒ ์ค๊ณ๋์๋ค๊ณ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
2. RESTful API
์์ ๋์ดํ REST์ ๊ธฐ๋ณธ ์์น์ ์ ์งํจ API๋ฅผ RESTful API๋ผ๊ณ ์ ์ํ๋ค.
3. HTTP ์์ฒญ ๋ฉ์๋

์ด๋์ง ์ต์ํ GET, POST ๋ฑ๋ฑ์ ๋ฉ์๋๋ค!..
๋ฉ์๋ | ์ข ๋ฅ | ๋ชฉ์ | ํ์ด๋ก๋ ํ์์ฌ๋ถ |
---|---|---|---|
GET | index/retrieve | ๋ชจ๋ /ํน์ ๋ฆฌ์์ค ์ทจ๋ | x |
POST | create | ๋ฆฌ์์ค ์์ฑ | o |
PUT | replace | ๋ฆฌ์์ค์ ์ ์ฒด ๊ต์ฒด | o |
PATCH | modify | ๋ฆฌ์์ค ์ผ๋ถ ์์ | o |
DELETE | delete | ๋ชจ๋ /ํน์ ๋ฆฌ์์ค ์ญ์ | x |
PUT๊ณผ PATCH ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ ๋ค ์์ ์ ์ด์ฉ๋ ์ ์์ง๋ง,
PUT ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ฆฌ์์ค์ ์ ์ฒด๋ฅผ, PATCH๋ ์ผ๋ถ๊ฐ ์์ ๋๋ค๋ ์ฐจ์ด๊ฐ ์๋ค.
4. RESTful API ์์ฑ ์์
- URI์ ๋์ฌ๋ฅผ ํฌํจํ์ง ์๊ณ HTTP Method๋ก ๋์ฒดํ๊ธฐ
# bad
GET /todos/delete/1
GET /deleteTodos/1
# good
DELETE /todos/1
javascript
- ์๋ฌธ์๋ก ๊ตฌ์ฑํ๊ธฐ
# bad
/Todos/1
# good
/todos/1
- ํ์ผ ํ์ฅ์ ํ์ํ์ง ์๊ธฐ
# bad
users/1/profile.png
# good
users/1/profile (Acceipt: image/png)
5. Restful API ์ธ์ ๋ค๋ฅธ API ์ํคํ ์ฒ ์คํ์ผ
5.1. SOAP API(Simple Object Access Protocol)
SOAP๋ XML ๊ธฐ๋ฐ์ ๋ฉ์์ง ๊ตํ ํ๋กํ ์ฝ์ด๋ค.
SOAP API๋ HTTP, HTTPS, SMTP ๋ฑ์ ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉฐ, ์ฃผ๋ก XML ๋ฐ์ดํฐ ํ์์ ์ฌ์ฉํ๋ค.
5.2. GraphQL API(Graph Query Language)
GraphQL์ ํ์ด์ค๋ถ์์ ๊ฐ๋ฐํ ์ฟผ๋ฆฌ ์ธ์ด๋ค.
GraphQL API๋ ํด๋ผ์ด์ธํธ์์ ์์ฒญํ ํ๋๋ง์ ๋ฐํํ๋ฉฐ, ์ฌ๋ฌ ์์ฒญ์ ๋ฌถ์ด ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ ๋ฑ์ ์ ๊ณตํ๋ค.
์ด์ธ์๋ RPC API, WebSocket API ๋ฑ์ด ์๋ค.
6. ์ถ์ฒ
https://aws.amazon.com/ko/what-is/restful-api/
https://pronist.dev/146#%EC%A0%95%EB%A0%AC%2C%20%ED%95%84%ED%84%B0%EB%A7%81%2C%20%ED%95%84%EB%93%9C%20%EC%84%A0%ED%83%9D-1
'๐ Studying > CS & Network' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ผ์ฐ์ ์ ์ฅ์ (Local/Session Storage, Cookie) (0) | 2023.03.31 |
---|---|
HTTP์ HTTP์ ๋ฉ์ธ์ง ๊ตฌ์กฐ (0) | 2023.03.30 |
ํ๋ก ํธ์๋์์์ ์บ์ (0) | 2023.03.29 |
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด์ (0) | 2023.03.29 |
google.com์ ์ฃผ์์ฐฝ์ ์ ๋ ฅํ์ ๋ ์ผ์ด๋๋ ์ผ (1) | 2023.03.21 |
Comment