ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ GitHub API ํ์ฉํ๊ธฐ
GitHub User ๋ฐ์์ค๊ธฐ
GitHub ์ฌ์ฉ์๋ฅผ ๋ฐ์์ค๊ธฐ ์ํด GitHub API ํ์ฉํ๋ ค๊ณ ํด์. Entity๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ํํ๋ก ๋์ด์ค๋์ง ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ณต์๋ฌธ์๋ฅผ ํ์ธํด์.
๊ณต์ ๋ฌธ์: https://docs.github.com/en/rest/reference/search#search-users
๊ณต์ ๋ฌธ์์ ์ผ๋ถ๋ฅผ ๊ฐ์ ธ์ฌ๊ฒ์.
์ฐ์ GitHub API์ด๋ฏ๋ก base URL์ "https://api.github.com" ์ผ๊ฑฐ์์. ์ฌ๊ธฐ์ endpoint๋ก /search/users๊ฐ ๋ถ๊ฒ ๋ค์.
์ฆ, ๊ธฐ๋ณธ URL ํํ๋ "https://api.github.com/search/users"๊ฐ ๋ผ์.
์ฌ๊ธฐ์์ ์ค์ํ ๊ฒ์ด Parameter์์.
์ด ๋ถ๋ถ์ ์ดํดํ๊ธฐ ์ํด์๋ GET ๋ฐฉ์์ ํต์ ๊ณผ URL query๋ฅผ ์ดํดํ ํ์๊ฐ ์์ด์. ์ํ๋ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ๊ฒ์ ์กฐ๊ฑด์ ๋ณดํต์ ๋ฉ์๋์ฒ๋ผ parameter์ ๋ฃ์ ๊ฒ์ด๊ณ , URL์์๋ "?"๋ฅผ ํตํด ๊ตฌ๋ถ์ง์ด์. ์ดํดํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์๋์ ์์๋ก ์ด์ด๊ฐ ๋ณผ๊ฒ์.
์์ ๊ณต์๋ฌธ์ ์์๋ฅผ ํด์ํด๋ณด๋ฉด, ์ด๋ฆ์ด tom์ธ ์ฌ์ฉ์๋ฅผ ์ฐพ์์. ๊ทธ๋ฆฌ๊ณ repository๊ฐ 42๊ฐ ์ด์, ํ๋ก์๊ฐ 1000๋ช ์ด์์ธ ์ฌ์ฉ์๋ฅผ ์ฐพ๋ ๊ฑฐ์ฃ .
ํท๊ฐ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ์ ์ด๋ฆ์ผ๋ก ์ค๋ช ํด๋ณผ๊ฒ์ :]
๋ง์ฝ, ๋ณดํต์ ์ฝ๋ฉ ์ธ์ด์์ ์ํ๋ ์กฐ๊ฑด์ ๋ฃ์ด ๊ฒ์์ ํ๋ค๋ฉด ์ด๋ค ํํ์ผ๊น์?
๊ฒ์ํ ์ด๋ฆ์ ๋ฃ๋๋ค -> ์ํ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ป๋๋ค
์ด๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ํํ์ผ ๊ฑฐ์์(Java๋ก ์์ฑ).
String[] gitHubUsers = ["...", "...", "..."]
public foo searchGitHubUser(String userName) {
// gitHubUsers์์ userName์ ๊ฐ์ง ๋ชฉ๋ก์ ๊ฒ์ํ๋ ๋ก์ง
return bar
}
API์ ์์ฒญํ ๋์๋ ๊ฐ์ ์๋ฆฌ์์! ์ ์ ์ ์ด๋ฆ์ ์ฟผ๋ฆฌ์ ๋ด์ ๋ณด๋ด๋ ๊ฒ์ด๊ณ , GitHub API๋ ๊ทธ๊ฑธ q๋ผ๊ณ ์ ์ํด๋์ด์.
๊ทธ๋์ tom์ด๋ผ๋ ์ด๋ฆ์ ๊ฒ์ํ๋ ค๊ณ q=tom์ด ๋๋ ๊ฑฐ์ฃ .
์ด๊ฑธ ํฉ์ณ๋ณด๋ฉด "tom์ด๋ผ๋ ์ด๋ฆ์ GitHub User๋ฅผ ์๋ ค์ค"๋ผ๋ ์ฃผ์๋
https://api.github.com/search/users?q="tom"
์ด ๋๋ ๊ฒ์ด์ฃ .
ํ์ธ์ ์ํด์ Postman์ ํ์ฉํด๋ณผ๊ฒ์!
๊ธฐ๋ณธ URL์ ์์ฑํ ํ Query Params ์ฟผ๋ฆฌ ์ธ์์ q๋ฅผ key๋ก ํ๊ณ ๊ฐ์ tom์ผ๋ก ๋ฃ์ด์ฃผ๋ฉด ์๋์ผ๋ก URL์ด ์์ฑ๋ผ์.
๊ทธ๋ฆฌ๊ณ ์์ฒญ์ Send๋ก ๋ณด๋ด๋ฉด
200 OK์ ์ ์์ ์ผ๋ก ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์์ค๋ ๊ฑธ ํ์ธํ ์ ์์ฃ .
JSON ํํ๋ก ๋์ด์ค๋ค์ :]
๊ณต์ ๋ฌธ์์ Response ํํ๋ ์น์ ํ๊ฒ ๋์์์ด์.
ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์์ ๊ฒฝ์ฐ ํต์ ์ ๊ตฌํํ ๋ ์ด๋ ๊ฒ GitHub API๋ก ํต์ ๊ฐ๋ฅ์ ํ์ธํ๊ณ , ์ถํ ์ํ๋ endpoint๋ก ๋ณ๊ฒฝํ ์ ์์ ๊ฒ ๊ฐ์์.
ํน์ ์๋ชป๋๊ฑฐ๋ ์ถ๊ฐํ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๋๊ธ ํ์ํฉ๋๋ค :]
'Web > ๊ฐ๋ ํ์ต' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Architecture]Flux๋? (0) | 2022.04.04 |
---|
- Total
- Today
- Yesterday
- ํ ๋งํ #๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ#BackTracking
- django
- ๋ณ๋ ๋์ดํธ#BOJ#ํ์๋ฒ#Python
- ๋ฐฐ์ดํฉ์น๊ธฐ#๋ถํ ์ ๋ณต#BOJ#Python
- ๋๋ฌด์๋ฅด๊ธฐ#BOJ#์ด๋ถํ์#Python
- ๋ฏธ๋ก ํ์#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- NumberofDiscIntersections#Codility#Sort#Python
- Swift#Tuples#Range
- filter#isalnum#lower
- N์ผ๋ก ํํ#DP#Programmers#Python
- ์ํธ์ฝ๋#dp#BOJ#Python
- ์์ด์ฌ์ดํด#BOJ#Python
- ์ฌ์๊ฐ์#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ๋ฆฌ๋ชจ์ปจ#์์ ํ์#BOJ#Python
- ๋ฐ๋ณต์์ด#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ๋์ ์๋ฅด๊ธฐ#์ด๋ถํ์#BOJ#Python
- ์ฟผ๋ํธ๋ฆฌ#BOJ#๋ถํ ์ ๋ณต#Python
- ํ ํ๋ก์ ํธ#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ํฐํ๋น์น#๋ฆฌ์ฝ#xbox#controller
- Triangle#Sorting#Codility#Python
- PassingCars#Codility#Python
- ์ข ์ด์๋ฅด๊ธฐ#๋ถํ ์ ๋ณต#BOJ#Python
- API#lazy#
- django#slicing
- ๊ณต์ ๊ธฐ ์ค์น#BOJ#์ด๋ถํ์#Python
- ๋ ์ง ๊ณ์ฐ#BOJ#์์ ํ์#Python
- Distinct#Codility#Python
- Brackets#Stacks and Queues#Codility#Python
- ํ์ด์ฌ์๊ณ ๋ฆฌ์ฆ์ธํฐ๋ทฐ#4์ฅ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |