ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐ŸŒŒ 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์„ ํ™œ์šฉํ•ด๋ณผ๊ฒŒ์š”! 

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
๋งํฌ
TAG more
ยซ   2024/11   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ