Apollo-link-rest: 404 OK ์‘๋‹ต์ด ์˜ค๋ฅ˜ ๋Œ€์‹  null์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

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


์ตœ๊ทผ์— ์ €๋Š” ์•ฑ์ด ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ˜ธ์ถœ (๋‹ค๋ฅธ ์—”๋“œ ํฌ์ธํŠธ์— ๋Œ€ํ•œ)์„ ๋™์ข…์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด apollo-link-rest๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์—…ํ•˜๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ์—”๋“œ ํฌ์ธํŠธ๋Š” GraphQL์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋‚˜๋จธ์ง€์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ฐพ๊ณ  ์žˆ๋˜ ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„์„œ ๊ฐ€์ ธ ์˜ค๊ธฐ๊ฐ€ 404๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด ์—”๋“œ ํฌ์ธํŠธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ # 119 & # 142 (https://github.com/apollographql/apollo-link-rest/blob /master/src/restLink.ts#L1047).

์‘๋‹ต์—์„œ ์ •๋ณด๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด ์™œ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ ๊ตฌ์„ฑ ๊ธฐ๋ฐ˜์œผ๋กœ ์ˆ˜ํ–‰ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

help wanted ๐Ÿ›  questionโ”

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

๋งŽ์€ ํšŒ์‚ฌ์—์„œ 404๋Š” "์น˜๋ช…์ ์ด์ง€ ์•Š์€ ์˜ค๋ฅ˜"์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ง€ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 404 ์‘๋‹ต์— "์ถ”๊ฐ€"๋ฐ์ดํ„ฐ๊ฐ€์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด GraphQL์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ชจ๋ธ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. # 119์™€ ์™ธ๋ถ€์—์„œ ๋…ผ์˜ํ•œ ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด ์ด๊ฒƒ์ด ๋” ๊ณ ํ†ต์Šค๋Ÿฌ์šด ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•œ๋‹ค๋Š” ํ•ฉ์˜๊ฐ€์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋ณ€๊ฒฝ์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์‹คํŒจ๋ฅผ ์ผ์œผํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด 404๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์ž์ฒด customFetch ๋ž˜ํผ ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @fbartho ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๋Š” ์•„์›ƒ ์Šคํ‚ค๋งˆ๊ฐ€ ๋งค์šฐ REST-y๋กœ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— 404์—†์ด ์ž‘์—…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ ๋‚ด customFetch๋ฅผ ๊ตฌํ˜„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ!

404 ์˜ค๋ฅ˜๋Š” ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ์—ฌ์ „ํžˆ ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.

@kevinrobayna 404 ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? ๋น„์Šทํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 404 ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์•„ํด๋กœ ํด๋ผ์ด์–ธํŠธ๋Š” null ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๊ฒ€์‚ฌ๊ธฐ์—์„œ๋Š” 404๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

@anasnain onCompleted ์ด๋ฒคํŠธ์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

onCompleted: (data) => {
  const token = data?.passwordRecoveryToken;
  // Apollo client sends null on 404 errors: https://github.com/apollographql/apollo-link-rest/issues/119
  if (!token) return handleEmailNotFound();

  return onGoToVerifyCode({ tokenId: token.id, email: inputs?.email?.value });
},

์ข‹์€ REST API ๊ด€ํ–‰๊ณผ ์ผ์น˜ํ•˜๋„๋ก 404๋ฅผ ์ •์ƒ์ ์ธ ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๋กœ ๋ณต์›ํ•˜๋Š” PR์„ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. https://github.com/apollographql/apollo-link-rest/pull/283

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