Apollo-link-rest: ์ž„์˜์˜ URL์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

์•ˆ๋…•ํ•˜์„ธ์š”,

์ฟผ๋ฆฌ์—์„œ ์ž„์˜์˜ URL์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด @rest ์ง€์‹œ๋ฌธ์˜ path ๋Š” ๊ฒฝ๋กœ ๋˜๋Š” ์ „์ฒด URL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

query getFoo {
  foo @rest(type: "Foo", path: "https://foo.com/foo") {
    bar
  }
}
Deprecated: '@rest(path:' contains a ':' colon, this format will be removed in future versions
index.js:1446 [Network error getIP]: Missing parameters to run query, specify it in the query params or use an export directive. (If you need to use ":" inside a variable string make sure to encode the variables properly using `encodeURIComponent`. Alternatively see documentation about using pathBuilder.)

๊ทธ๋Ÿฐ ๋‹ค์Œ path="${encodeURIComponent('https://foo.com/foo')}" ์„ ์ „๋‹ฌํ•˜๋ฉด REST ๋งํฌ๊ฐ€ https://[my current url]https%3A%2F%2Ffoo.com%2Ffoo ๋ฅผ ๋ˆ„๋ฅด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

pathBuilder ๋น„์Šทํ•˜๊ฒŒ ์›๋ž˜ URL์— ๋นŒ๋“œ ๋œ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

REST ๋งํฌ ์„ค์ •์—์„œ ์•ฑ์ด ํ˜ธ์ถœ ํ•  ๋ชจ๋“  URL์„ ๋“ฑ๋กํ•˜๋Š” ์œ ์ผํ•œ ์˜ต์…˜์ž…๋‹ˆ๊นŒ? ๊ทธ๋ ‡๋‹ค๋ฉด ์ „์ฒด URL์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  path ์„ ๋ฐ˜์˜ํ•˜๋„๋ก ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

bug ๐Ÿ› help wanted ๐Ÿ› 

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

@ timhwang21 ์„ ์‹ ๊ณ  ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ์•ฝ 1 ๋…„ ์ „์— ์†Œ๊ฐœ ๋œ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ „์ฒด RestLink์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ "๊ธฐ๋ณธ ์—”๋“œ ํฌ์ธํŠธ"๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ ์‚ฌ๋žŒ๋“ค์€์ด ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. -์ด ๊ฒฝ๊ณ ๋ฅผ ์–ต์ œํ•˜๊ณ  @rest() ์ฃผ์„์—์„œ ์ „์ฒด URL์— ๋Œ€ํ•œ ์ง€์›์„ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ˆ˜์ •์— ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด PR ๊ฒ€ํ† ๋ฅผ ์ง€์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ‹์ ธ์š”, ์ฃผ๋ง์— ์‹œ๊ฐ„์„ ์ข€ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์–ด์š”. @fbartho ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์–ด๋Š ๋ถ€๋ถ„์„ ๋จผ์ € ์‚ดํŽด

@ timhwang21 ์•ˆํƒ€๊น๊ฒŒ๋„ ์ฝ”๋“œ๋ฒ ์ด์Šค์—๋Š” ์†Œ์Šค ํŒŒ์ผ์ด ํ•˜๋‚˜ ๋ฟ์ด๋ฉฐ ์—„์ฒญ๋‚˜๊ฒŒ ๊ธธ์ง€๋Š” ์•Š์ง€๋งŒ ํŒŒ์ผ ์ „์ฒด์—์„œ ์—ฌ๋Ÿฌ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งŒ๋‚ฌ๊ณ  ๊ฒฝ๋กœ์— ์ „์ฒด URL์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ url: "https://domain.com/api/path/1" ์™€ ๊ฐ™์€ ์ƒˆ URL์„ ์ •์˜ํ•˜๋Š” ๋‹ค๋ฅธ ์˜ต์…˜์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

@ timhwang21 ๋‹น์‹ ์€ ๋ญ”๊ฐ€๋ฅผ ์ฑ„์ฐ์งˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ Fwiw๋Š” ๊ทธ ๋™์•ˆ ์ž‘๋™ํ•˜๋„๋กํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ํ•œ ์ž‘์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

  1. ๊ตฌ์„ฑ์— empty ์—”๋“œ ํฌ์ธํŠธ๋ฅผ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. empty: ' ' ๊ฐ’์—๋Š” ์‹ค์ œ ๊ณต๋ฐฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    image
  2. ์ด๊ฒƒ์„ ์ฟผ๋ฆฌ์˜ ๋์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์Œ์€ ํญํฌ ํ˜• ์š”์ฒญ์„ ํ•ด๊ฒฐํ•˜๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.
    image

๊ทธ๊ฒŒ ๋‹ค์•ผ.

์•„์ง๊นŒ์ง€ ๋‚˜๋จธ์ง€ ์„œ๋น„์Šค๋ฅผ GraphQL๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

2019 ๋…„ 7 ์›” 22 ์ผ ์›”์š”์ผ ์˜ค์ „ 9:14 Mat Silva [email protected] ์ž‘์„ฑ :

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งŒ๋‚ฌ๊ณ  ๊ฒฝ๋กœ์— ์ „์ฒด URL์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฐ€์น˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฑฐ๋‚˜
url : "๊ณผ ๊ฐ™์€ ์ƒˆ URL์„ ์ •์˜ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜
https://domain.com/api/path/1 ".

@ timhwang21 https://github.com/timhwang21 ์ฑ„์ฐ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?
๋ญ”๊ฐ€?

์—ฌ๊ธฐ Fwiw๋Š” ๊ทธ ๋™์•ˆ ์ž‘๋™ํ•˜๋„๋กํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ ํ•œ ์ž‘์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

  1. ๊ตฌ์„ฑ์— ๋นˆ ์—”๋“œ ํฌ์ธํŠธ๋ฅผ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค. ์‹ค์ œ
    ๊ฐ’์ด ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„ : ''.
    [์ด๋ฏธ์ง€ : ์ด๋ฏธ์ง€]
    https://user-images.githubusercontent.com/4511972/61635093-c85eba80-ac60-11e9-87aa-eae6cf788e59.png
  2. ์ด๊ฒƒ์„ ์ฟผ๋ฆฌ์˜ ๋์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์Œ์€
    ํญํฌ์ˆ˜ ์š”์ฒญ ํ•ด๊ฒฐ ์ค‘ ...
    [์ด๋ฏธ์ง€ : ์ด๋ฏธ์ง€]
    https://user-images.githubusercontent.com/4511972/61635160-f0e6b480-ac60-11e9-8879-e78f0ae4d982.png

๊ทธ๊ฒŒ ๋‹ค์•ผ.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/apollographql/apollo-link-rest/issues/192?email_source=notifications&email_token=ABMPWCWNFOUEL4WFA3GSY7TQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52J994,#WSZLMV513785J994DFVRWEXG43Z785BCQ4DFVRWEXG43ZVMVBW63
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABMPWCVPMVEBZQSMS2CGQQLQAWXEZANCNFSM4GX3BPZQ
.

๋‚˜๋จธ์ง€ ์„œ๋น„์Šค๋ฅผ GraphQL๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

Github์˜ API๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๊ทธ์ค‘ ์ผ๋ถ€๋Š” ์•„์ง GraphQL API์— ์—†์Šต๋‹ˆ๋‹ค. Rest API์—๋Š” ๋‚ด๋ณด๋‚ด๊ณ  ์žฌ์‚ฌ์šฉ ํ•  ์ˆ˜์žˆ๋Š” ๋งŽ์€ ์ ˆ๋Œ€ URL ํ•„๋“œ๊ฐ€ ์žˆ์ง€๋งŒ : catch๋กœ ์ธํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋นˆ ๋์ ์—์„œ ํ•ดํ‚นํ•˜๋Š” @matsilva ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

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