ilokesto

그룹 요청

Typed shortcut method는 grouped request object를 사용합니다. 이 grouping은 OpenAPI 개념을 반영하지만, 별도 runtime client model을 만들지는 않습니다.

api.post('/uploads/{uploadId}', {
  params: {
    path: { uploadId: 'upload-1' },
    query: { draft: true },
    cookie: { session: 'type-only' },
  },
  headers: {
    'x-upload-token': token,
  },
  formData: {
    file,
    tags: ['a', 'b'],
  },
}, {
  timeout: 15_000,
});

구조

  • params.path: route template placeholder 값입니다.
  • params.query: ky searchParams로 전달되는 query parameter입니다.
  • params.cookie: typed cookie parameter이며 현재 runtime에서는 type-only입니다.
  • headers: typed header parameter이며 세 번째 인자의 ky headers와 merge됩니다.
  • json: JSON request body입니다.
  • formData: multipart request body입니다.
  • formUrlEncoded: URL-encoded request body입니다.
  • 세 번째 인자: 일반 ky options입니다.

런타임 정규화

Wrapper는 dispatch 전에 grouped object를 ky options로 바꿉니다.

  1. params.path로 route template을 interpolation합니다.
  2. params.query를 searchParams로 옮깁니다.
  3. grouped headers와 explicit ky headers를 merge합니다.
  4. body source 하나를 선택합니다.
  5. context.openapi를 주입합니다.
  6. ky에 위임합니다.

Cookie parameter는 OpenAPI type parity를 위해 존재하지만 Cookie header로 자동 serialize되지는 않습니다.

목차