ilokesto

요청 본문

Shortcut request는 세 가지 OpenAPI body shortcut인 json, formData, formUrlEncoded를 지원합니다.

JSON

api.post('/posts', {
  json: {
    title: 'Typed facade',
  },
});

Grouped json은 ky json option으로 매핑됩니다. 세 번째 인자에도 json이 있고 두 값이 모두 strict plain object이면 explicit ky value가 우선하도록 shallow merge됩니다.

멀티파트 폼 데이터

api.post('/uploads/{uploadId}', {
  params: { path: { uploadId: 'upload-1' } },
  formData: {
    file,
    visibility: 'private',
    tags: ['a', 'b'],
  },
});

Object는 FormData로 변환됩니다. Array는 같은 key를 반복 append합니다. Blob value는 blob으로 append됩니다. undefined value는 건너뜁니다. 이미 FormData instance라면 그대로 전달됩니다.

URL 인코딩

api.post('/sessions', {
  formUrlEncoded: {
    username: 'demo',
    password: 'secret',
    scope: ['read', 'write'],
  },
});

Object는 URLSearchParams로 변환됩니다. Array는 같은 key를 반복 append하고 값은 string으로 변환됩니다.

명시적 덮어쓰기

세 번째 인자는 grouped body normalization을 override할 수 있습니다.

  • explicit body는 모든 grouped body보다 우선합니다.
  • explicit json은 grouped form body를 대체할 수 있습니다.
  • grouped json과 explicit json은 둘 다 strict plain object일 때만 merge됩니다.

특정 endpoint에서 정확한 ky behavior가 필요할 때 이 escape hatch를 사용하세요.

목차