Get Contents ๋ผ๋ API๊ฐ ์๋ค.
GET /contents
status: 200
{
id: 24213,
title: "Content Title",
content: "Content blar blar",
author: "SEju",
createdDatetime: "2021-05-13T17:54:03.152+09:00"
}
์์ง ํฌ๊ฒ ์ ๊ฒฝ์ฐ์ด๋ ๋ถ๋ถ์ ์๋ค.
๋ฌธ์ ๋ ๋ช
์ธ๋ฅผ ์์ ํ ๋ ๋ฐ์ํ๋ค.
๊ฒ์๋ฌผ์ "์ข์์" ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ถ์ด์
์ฌ์ฉ์๋ ๊ฒ์๋ฌผ์ "์ข์์" ๋ฅผ ๋๋ฅผ ์ ์๋ค.
๊ทธ๋ ๋ค๋ฉด Get Contents API์๋ ์ฌ์ฉ์ ํด๋ผ์ด์ธํธ๊ฐ ๊ฒ์๋ฌผ์ "์ข์์"๋ฅผ ๋๋ ๋์ง ํ์ธํ๋ ๊ฐ์ด ์์ด์ผํ๋ค.
๋ณดํต ํ ์ด ํ๋ก์ ํธ์์๋ ์ด๋ ๊ฒ ํด๊ฒฐํ๋ค.
GET /contents
status: 200
{
...
liked: true
}
๋ค๋ฅธ ํ๋ก์ ํธ์์๋ ์ด๋ฐ ์ํฉ์์ ์ด๋ป๊ฒ ์ค๊ณํ์ง ์ฐพ์๋ณด์๊ณ
๊ถ์ ๋ฅผ ํ๊ณ ์์จ๊ฐ ๋ฐ์๋ค์ฌ ๊ฐ์ด ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๊ฒ ๋์๋ค.
๋ฌด์์ ๊ฒ์์ ํ๋ ๊ฒ๋ณด๋ค best example์ ์ฐพ์๋ณด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์๋ค.
์์ฆ์๋ ์ข์ REST API๊ฐ ๊ณต๊ฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ฐพ๊ธฐ ์์ํ๋ค.
๊นํ๋ธ์์ ์ ๊ณตํ๋ Restful OpenAPI๋ฅผ ์ดํด๋ณด์๋ค.
๊นํ๋ธ์๋ ๋ ํฌ(Repository)๋ผ๋ ๋จ์๊ฐ ์๊ณ ์ด๋ฅผ ์ ์ ๊ฐ star๋ฅผ ํ ์ ์์ด์ ์ข์ ์์๊ฐ ๋ ๊ฒ์ด๋ค.
OpenAPI์์๋ ์ ์ ์ ๋ ํฌ์ ์ ๋ณด๋ฅผ ๋ฆฌํดํ๋ API ์ ๊ฐ๊ฐ starred_url๊ณผ stargazers_url์ด ์์ด Rest์ hateoas๋ฅผ ์งํค๋ฉด์ starํ ๋ ํฌ๋ star ํด์ค ์ ์ ์ ์ ๋ณด์ ์ ๊ทผ ํ ์ ์์๋ค.
๋ํ starred_url์ด๋ stargazers_url์ ๋ค์ ๊ฐ๊ฐ ๋ ํฌ๋ ์ ์ ์ ์๋ณ์๋ฅผ ๋์ผ๋ฏ๋ก์ ์ ์ ๊ฐ ํด๋น ๋ ํฌ์ star๋ฅผ ํ๋์ง, ๋ ํฌ์ ํด๋น ์ ์ ๊ฐ star๋ฅผ ํด์คฌ๋์ง ํ์ธ ํ ์ ์๋ API๊ฐ ์กด์ฌํ๋ค.
Get Codes API ์ starred_url ์์ฑ๊ฐ์ ์ถ๊ฐํ๋ค.
GET /contents
status: 200
{
...
liked_url: {base_url}/codes/{snippet_id}/star/{user_id}
}
GET ์์ฒญ์ ํตํด star ์ฌ๋ถ๋ฅผ ์ ์ ์๋ค.
์๋ฌด๋๋ ์ฌ๋ฌ๋ฒ API๋ฅผ ํธ์ถํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ์๊ณ ํ๋ก ํธ ๋ก์ง์ด ๋ ๋ณต์กํด์ง๊ธฐ๋ ํ๋ค.
ํ์ฅ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ ๊ฐ์ ์ฅ์ ์ ์์ง ์ฒด๊ฐ์ ๋ชปํ๊ณ ์๋ค.
์ข ๋ ๊ณต๋ถํด๋ณด๊ณ ์ถ๊ฐ๋ก ํฌ์คํ
์ ์งํํ ์์ ์ด๋ค.
์ฌ๊ธฐ์ ๊ฐ์ด ๊ณ ๋ฏผํด์ค ์์จ๊ฐ ๋ ์ ์ ๋ฆฌํด์คฌ๋ค.
์ฌ๋ฐ๋ ์ฃผ์ ๋ก ์ข์ ๊ธ์ด ์์ด์ ๋ณด๋ ํ๋ฐฐ๋์ด์
จ๋ค์. ใ
ใ
ํ๊ต DB ์๊ฐ์ ๋ฐฐ์ฐ๋ ๊ฒ๋ค์ด ์๋ฏธ์๊ณ ๋ฐ๋ถํ๋ค๊ณ ์๊ฐ์ด ๋ค ๋๊ฐ ์์๋๋ฐ, ๊ทธ ๋ ๋ฐฐ์ ๋ relation ๊ฐ๋
์ผ๋ก ํ ์ ์๋ ๋ฌธ์ ๊ฐ API ๊ฐ๋ฐ์์ ๊ฝค ์์๋ค์.
+ ๋ณธ๋ฌธ์์ REST ์๊ธฐ๊ฐ ๋์์ ๋ง์ธ๋ฐ, ์ฌ๋ด ๋ฐํ์์ RESTful์ ๋ํด ์๊ธฐํ๋ ๋ด์ฉ์ ๊ธ๋ก ์ฎ๊ธฐ๊ฒ ๋๋ฉด ์ฝ๋ฉํธ ๋๋ฆด๊ฒ์. API๊ฐ JSON ๋ฐ์ดํฐ๋ฅผ responseํ๊ฒ ๋๋ฉด self-descriptive๋ฅผ ๋ง์กฑํ์ง ๋ชปํด์ REST์ ์กฐ๊ฑด์ ๋ถํฉํ์ง ๋ชปํ ๋๊ฐ ๋๋ถ๋ถ์ด๊ฑฐ๋ ์.
์ค.. RESTfulํ๋ ค๋ฉด ์ญ์ HTTP ๋ฉ์๋๋ฅผ ์ ํ์ฉํด์ผ ํ๋๊ตฐ์