์ผ๋ง์ ์ ๋๋
Github ์ API๋ฅผ ํตํด์
ํด๋นํ๋ Github User์ Organizations ๋ฅผ ๊ฐ์ ธ์ค๋ คํ์๋ค.
์ด๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ค ๋๋ 2๊ฐ์ง API๋ฅผ ํตํด์
User์ List organizations ๋ฅผ ํ์๋ค.
์ฒซ๋ฒ์งธ๋
GET
/user/orgs
๋ฅผ ํตํด์ ๊ฐ์ ธ์ค๋ ค ํ์๋ค.
๋ฌธ์ ์ ๐ก
ํ์ง๋ง, ๋ถ๋ช ํ ๋๋ ํ๋จ์ ์ฌ์ง์ฒ๋ผ 2๊ฐ์ ์กฐ์ง์ ๊ฐ์ง๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ ,
ํ๋จ์ ์ฌ์ง์ฒ๋ผ Postman์ผ๋ก header์ ์๋ง์ token๊ณผ X-Github-Api-Version์
์ ๋ ฅํ์์๋ ๋ถ๊ตฌํ๊ณ response๋ก
empty array๊ฐ ๋์๋ค.
์๊ธด๊ฑด status code๊ฐ 200 ๋ฒ์ผ๋ก
์ ์์ด๋ผ๋ ๊ฑฐ๋ค.
ํด๊ฒฐ์ฑ
๊ทธ๋์ ๋๋ ์ด๋ฒ์๋
๋ค๋ฅธ API๋ฅผ ํตํด์ User์ List organizations ๋ฅผ ํ์๋ค.
์ด๋ฒ์ ์ฌ์ฉํ API๋
GET
/users/{username}/orgs
์ด๋ฉฐ, ํ๋จ์ ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์ค๊ฒ ์๋ํ์๋๋,
์ด๋ฒ์ Postman์์ ๋์ List organizations ๋ฅผ response ํด์ฃผ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
ํ์ง๋ง ํด๋น API๋
{username}์ฌ์ฉ์์ ๊ณต๊ฐ ์กฐ์ง๋ง์ ๋ฐํํ๋ค.
ํด๊ฒฐ์ฑ
๊ทธ๋์ ์ฒ์์ ์๋ํ์๋
๋ฅผ ํตํด์ user์ List organizations ๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด,
์ฒ์์ ๋ด๊ฐ 3rd party ์ธ์ฆํ๋ ๋ถ๋ถ์
๋์ organizations ์ค์์ ๊ฐ์ด ์กฐํ๊ฐ ๋๊ธฐ๋ฅผ
์ํ๋ organization๋ฅผ ๋์์ access๋ฅผ ํด์ค์ผํ๋ค.
๋ง์ฝ์ ์ด๋ฏธ ์ธ์ฆ์ด ์๋ฃ๋์ด์,
๊ธฐ์กด์ ์ธ์ฆ์ ์ทจ์ํ๊ณ ๋ค์ ๋ฑ๋กํ๊ณ ์ถ์ผ๋ฉด
ํ๋จ์ ์ฌ์ง์ฒ๋ผ Github์ ๋ค์ด๊ฐ์,
ํด๋น ์ฌ์ดํธ์ ์ธ์ฆ์ ์ทจ์๋ฅผ ์งํํ๊ณ
๋ค์ ๋์ organization๋ฅผ ๋์์ access๋ฅผ ํด์ฃผ๋ฉด ํด๊ฒฐ์ด ๋๋ค.
์์ฝ
๋ API ์๋ํฌ์ธํธ๋ GitHub ์ฌ์ฉ์์ ์กฐ์ง(organization)์ ๋์ดํ๋ ๋ฐ ์ฌ์ฉ๋์ง๋ง, ์ฃผ์ ์ฐจ์ด์ ์ ์กฐํ ๋์๊ณผ ๊ด๋ จ์๋ค.
1. GET /user/orgs
- ์ด API๋ ํ์ฌ ์ธ์ฆ๋ ์ฌ์ฉ์์ ์กฐ์ง์ ๋ฐํํฉ๋๋ค.
- ๋ฐ๋ผ์ ์ด ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด OAuth ํ ํฐ ๋๋ ๋ค๋ฅธ ์ธ์ฆ ๋ฐฉ๋ฒ์ ํตํด ์ธ์ฆ๋ ์ธ์ ์์ ์์ฒญ์ ํด์ผ ํฉ๋๋ค.
- ์์ฒญํ ์ฌ์ฉ์๊ฐ ์ํ ์กฐ์ง์ ๋ชฉ๋ก์ ์ป๊ธฐ ์ํด ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
2. GET /users/{username}/orgs
- ์ด API๋ ์ง์ ๋ `{username}` ์ฌ์ฉ์์ ๊ณต๊ฐ ์กฐ์ง์ ๋ฐํํฉ๋๋ค.
- `{username}`์ ์ํ๋ GitHub ์ฌ์ฉ์์ ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
- ์ด ์๋ํฌ์ธํธ๋ ํน์ ์ฌ์ฉ์์ ๊ณต๊ฐ ์กฐ์ง ์ ๋ณด์ ๋ํ ์ด๋์ด ํ์ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ธ์ฆ์ด ํ์๋ ์๋์ง๋ง, ์ธ์ฆ๋ ์์ฒญ์์ ๋ ๋ง์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ ๋ค ์ฌ์ฉ์์ ์กฐ์ง์ ๋ฐํํ์ง๋ง, ์ฒซ ๋ฒ์งธ๋ ํ์ฌ ์ธ์ฆ๋ ์ฌ์ฉ์์ ๊ดํ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ๋ ํน์ ์ฌ์ฉ์์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ ์ผ์ด์ค๋ ํ์ํ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ ์ ํ ์๋ํฌ์ธํธ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ ์ฌ์ดํธ