CAKE20

AI Web PaaS

API

파일 이름으로 HTTP method와 URL을 선언합니다.

API 라우팅

  • server/api/hello.ts → GET /api/hello
  • server/api/notes.get.ts → GET /api/notes
  • server/api/notes.post.ts → POST /api/notes
  • server/api/users/[id].patch.ts → PATCH /api/users/:id
  • server/api/files/[...path].get.ts → GET /api/files/*
  • method suffix를 생략한 *.ts 파일은 GET으로 처리합니다.
  • 파일이 많으면 server/api/admin/users/*.ts처럼 필요한 깊이의 폴더로 정리합니다.
  • [[page]]는 생략 가능한 경로가 되며 HEAD와 OPTIONS 파일도 지원합니다.
  • default export 함수가 문자열을 반환하면 HTML, 객체를 반환하면 JSON 응답이 됩니다.
  • 사용하지 않는 매개변수는 _data처럼 앞에 _를 붙이고 void data로 소비하지 않습니다.

기본 handler

context에는 app, request, params와 요청 추적용 requestId가 들어옵니다. Response를 직접 반환하면 status, header와 streaming body를 그대로 사용할 수 있습니다.

export default async (_input: unknown, context: ApiContext) => ({
  id: context.params.id,
  requestId: context.requestId,
  count: await db.note.count()
});