ilokesto

업로드와 폼

OpenAPI 요청 본문은 JSON만 설명하지 않습니다. Fetcher는 단축 요청에서도 이런 본문 형식을 명시적으로 유지합니다.

멀티파트 업로드

await api.post('/uploads/{uploadId}', {
  params: {
    path: { uploadId: 'avatar' },
  },
  headers: {
    'x-upload-token': uploadToken,
  },
  formData: {
    file,
    visibility: 'private',
  },
});

정확한 이유가 없다면 multipart Content-Type header를 직접 설정하지 마세요. Boundary는 platform이 추가해야 합니다.

URL 인코딩 폼

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

Array는 repeated key가 됩니다. Boolean과 number는 string으로 변환됩니다. undefined entry는 건너뜁니다.

미리 만든 본문

완전한 제어가 필요하면 FormData, URLSearchParams, explicit body를 ky options로 넘기세요.

const body = new FormData();
body.append('file', file);

await api.post('/uploads/{uploadId}', {
  params: { path: { uploadId: 'manual' } },
}, {
  body,
});

목차