Apollo-link-rest: Apollo Client 3 ์ง€์›

์— ๋งŒ๋“  2019๋…„ 11์›” 12์ผ  ยท  16์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: apollographql/apollo-link-rest

Apollo-client 3๋Š” ํ˜„์žฌ ๋ฒ ํƒ€ ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ํฐ ๋ณ€ํ™” ์ค‘ ํ•˜๋‚˜๋Š” apollo-link ์ด ์ด์ œ @apollo/client ์ผ๋ถ€๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” apollo-client ๋ฒ ํƒ€ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ apollo-link ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— apollo-link-rest ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๊ฒฐ๊ตญ ApolloLink์— ๋Œ€ํ•œ ๋‘ ๊ฐ€์ง€ ์ •์˜๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

apollo-link-rest๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „ํ™˜ ๋  ๋•Œ ๋กœ๋“œ๋งต์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Blocked โ›”๏ธ blocking enhancement๐Ÿ’ก questionโ”

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @rgrove!

๊ทธ๋ž˜์„œ ๊ฑฐ๊ธฐ์— @cpsnowden ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ ํƒ€๋Š” ๊ฝค ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค : P

-๋‹ค์Œ ๋‹ฌ์ฏค์— ๊ณต์‹ ๋ฆด๋ฆฌ์Šค์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•˜๊ณ  ๋ฐฐ์†กํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค-์ด์ •ํ‘œ์— ์ฐฉ์ˆ˜ ํ•  ๊ธฐ๋Šฅ์ด์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋ชจ๋‘ ๊ณต์‹์ ์œผ๋กœ ํ•จ๊ป˜ ์ถœ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋ชจ๋“  16 ๋Œ“๊ธ€

@GoranZic Apollo-client 3๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋„์›€์ด๋‚˜ ์‚ฌ์–‘์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@benjamn @jbaxleyiii @hwillson โ€” ๋งํฌ๋ฅผ ApolloClient 3 ๋ฐ 2.x์™€ ๋™์‹œ์— ์ˆœ๋ฐฉํ–ฅ / ์—ญ๋ฐฉํ–ฅ ํ˜ธํ™˜๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์‚ฌ์–‘์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ฐพ์„ ์ˆ˜์žˆ๋Š” ์ตœ๊ณ ์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ์€ apollo-client์˜ ๊ด€๋ จ ํ’€ ์š”์ฒญ์ž…๋‹ˆ๋‹ค.
https://github.com/apollographql/apollo-client/pull/5412
๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ์€ apollo-link ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ จ pull ์š”์ฒญ์ž…๋‹ˆ๋‹ค.
https://github.com/apollographql/apollo-link/pull/1158

์ค„ ์‚ฌ์ด๋ฅผ ์ฝ์œผ๋ฉด ์—ฌ๊ธฐ์— ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค :-(

@fbartho ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ƒ๋‹นํžˆ ์ตœ์†Œํ™”๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. apollo-link , apollo-link-http ๋ฐ apollo-link-http-common ํŒจํ‚ค์ง€์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ด์ œ @apollo/client ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” @apollo/client ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด https://github.com/apollographql/apollo-link/pull/1158 ์˜ ๋ฉ”์ด์ € ๋ฒ„์ „์—์„œ ํŒจํ‚ค์ง€๋ฅผ ๋ฒ”ํ”„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ apollo-client ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€ ์ด์ „ ๋งํฌ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  @apollo/client ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ์€ ์ƒˆ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

@apollo/client ํ•„์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์†Œ๊ฐœํ•˜๋Š” PR์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์€์ง€ ์•„๋‹ˆ๋ฉด ์ง์ ‘ ์กฐ์‚ฌํ•˜๊ณ  ์‹ถ์€์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”.

์–ด๋–ค ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•œ์ง€ ์•ˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์•„์ง ๊ณต์‹์ ์œผ๋กœ 1.0 ๋ฒ„์ „์œผ๋กœ ์ถœ์‹œ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„์ง๊นŒ์ง€ ์ถœ์‹œ ๋œ ์ƒํƒœ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜ํ•˜-์ข‹๋„ค์š”. ๊ณง PR์„ ์ค€๋น„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@fbartho ์ด ํŒจํ‚ค์ง€๋Š” ์—ฌ์ „ํžˆ 0.x.y ๋ฆด๋ฆฌ์Šค์ด๋ฏ€๋กœ ์‚ฌ์†Œํ•œ ์ถฉ๋Œ๋กœ ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ^0.7.0 ์‚ฌ์šฉํ•˜๋Š” NPM์ด ์–ด์จŒ๋“  ํŒจ์น˜๋ฅผ ๋ฒ”ํ”„์‹œํ‚ฌ ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.

@hwillson Migrating to Apollo Client 3.0์„ ์ฝ์„ ๋•Œ ์‹ค์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด apollo-link-rest ํŒจํ‚ค์ง€๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์ œ์™ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋น ์ง„ ์ด์œ ๊ฐ€ ์žˆ๋‚˜์š”?

๋˜ํ•œ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ ์€ apollo docs 3.0์—์„œ import { RestLink } from '@apollo/link-rest'; ํ•ด์•ผํ•œ๋‹ค๊ณ  ๋ช…์‹œํ•˜์ง€๋งŒ npm ๋˜๋Š” apollo-link ์ €์žฅ์†Œ์— ํŒจํ‚ค์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ€์ด๋“œ @chrisber๋ฅผ ๊ฒ€ํ† ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! https://github.com/apollographql/apollo-link-rest/pull/241 ์€ @apollo/client ๊ฐ€ ๋ผ์ด๋ธŒ ์ผ ๋•Œ ๋ฆด๋ฆฌ์Šค ๋  ์˜ˆ์ •์ด์ง€๋งŒ apollo-link-rest ๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์—์„œ ํŠน๋ณ„ํžˆ ํ˜ธ์ถœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ€์ด๋“œ๋Š” ํ˜„์žฌ Apollo ํšŒ์‚ฌ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€์ด๋“œ๋ฅผ ์งง๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‹น์‹ ์ด ์˜ณ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค-๊ทธ ์ธ๊ธฐ๋กœ ์ธํ•ด ์šฐ๋ฆฌ๋Š” ๊ฐ€์ด๋“œ์—์„œ ์–ธ๊ธ‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@apollo/link-rest ๋ฉ˜์…˜์€ ์‹ค์ˆ˜์ž…๋‹ˆ๋‹ค! ์—ฌ์ „ํžˆ apollo-link-rest ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. @apollo/link-X ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋Š” Apollo ํšŒ์‚ฌ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ณ ์ณ ์ค„๊ฒŒ. ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

Apollo Client 3์™€ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด v0.8.0- ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค ์ง„ํ–‰์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@cpsnowden ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด๋‚˜ ๋ฒ ํƒ€ ๋นŒ๋“œ์˜ ์„ฑ๊ณต์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ํ”ผ๋“œ๋ฐฑ์„๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ ํƒ€๋ฅผ ์ถœ์‹œํ–ˆ์„ ๋•Œ, ApolloClient3์˜ ์ถœ์‹œ์ผ์ด ๋ช‡ ๋‹ฌ ๋™์•ˆ ๋’ค๋กœ ๋ฐ€๋ ค ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์‹œ๊ฐ„ ์ดํ›„์— ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์•„์ง ์‚ฌ์šฉํ•ด ๋ณด์…จ๋‚˜์š”? ์šฐ๋ฆฌ ํŒ€์€ ๋‹ค์Œ ๋‹ฌ ์ •๋„์— ApolloClient3๋กœ ์ด์ „ ํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ ๊ทธ ์ „์— ๋ฒ ํƒ€์— ๋Œ€ํ•œ ์™ธ๋ถ€ ํ”ผ๋“œ๋ฐฑ์„๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @fbartho! ์ด ํ‹ฐ์ผ“์„ ๋ดค์ง€๋งŒ ํ”ผ๋“œ๋ฐฑ์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ๊ฑฐ๋‚˜ ๋” ๋นจ๋ฆฌ ๋ง์„ ๊ฑธ์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜„

์šฐ๋ฆฌ ( SmugMug )๋Š” Apollo 3๊ณผ ํ•จ๊ป˜ apollo-link-rest 0.8.0-beta.0์„ ๋ช‡ ๋‹ฌ ๋™์•ˆ ์‚ฌ์šฉํ•ด ์™”์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค! apollo-link-rest์— ๊ด€ํ•œ ํ•œ ๊ณ ํ†ต์—†๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ์˜€์œผ๋ฉฐ ์ˆœ์กฐ๋กญ๊ฒŒ ํ•ญํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @rgrove!

๊ทธ๋ž˜์„œ ๊ฑฐ๊ธฐ์— @cpsnowden ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ ํƒ€๋Š” ๊ฝค ์•ˆ์ •์ ์ž…๋‹ˆ๋‹ค : P

-๋‹ค์Œ ๋‹ฌ์ฏค์— ๊ณต์‹ ๋ฆด๋ฆฌ์Šค์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•˜๊ณ  ๋ฐฐ์†กํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค-์ด์ •ํ‘œ์— ์ฐฉ์ˆ˜ ํ•  ๊ธฐ๋Šฅ์ด์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ๋ชจ๋‘ ๊ณต์‹์ ์œผ๋กœ ํ•จ๊ป˜ ์ถœ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋Œ€๋ฐ•! ๋•๋ถ„์— ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๋Š” ๋น ๋ฅธ ์‘๋‹ต ๋ฐ @rgrove์— ๋Œ€ํ•œ @fbartho!

์ฐจ์ž„์œผ๋กœ-2020 ๋…„ 8 ์›”๋ถ€ํ„ฐ ํ•ญ์ƒ ์ตœ์‹  Apollo์™€ ํ•จ๊ป˜ v0.8.0-beta.0 ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ฌธ์ œ๋„ ์—†์—ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰