Creating and handling API in motia
- Motia에서 API를 생성하는 첫 단계는
steps 폴더에 [번호].[이름].step.ts 형식의 파일을 만드는 것입니다. 📁
- API 라우트 설정은
API_ROUTE_CONFIG를 임포트하여 config 객체를 정의하며, name, type (API), path, method (POST, GET 등), 그리고 emit (이벤트 발행) 속성을 포함합니다. ⚙️
handler 함수는 비동기(async)로 정의되며, request 객체와 logger, emit, state를 포함하는 컨텍스트 객체를 인자로 받습니다. ✋
- 요청 본문(
request.body)에서 필요한 데이터를 추출하고, 필수 필드 누락 및 이메일 형식과 같은 유효성 검사를 수행하여 400 또는 500 상태 코드를 반환합니다. 🚫
console.log 대신 logger.info 및 logger.error를 사용하여 Motia 워크벤치에 통합된 로깅을 수행합니다. 📝
- 고유한
job ID를 생성하고, state.set을 사용하여 job ID, channel, email, status (queued), createdAt 등의 작업 관련 정보를 저장하여 단계 간 데이터 공유 및 상태 관리를 합니다. 💾
- 작업 처리 및 상태 설정 후,
emit을 사용하여 yt.submit과 같은 정의된 토픽으로 job ID를 포함한 이벤트를 발행하여 다른 단계들이 이를 수신하고 다음 작업을 진행할 수 있도록 합니다 (Pub-Sub 모델). 📢
npm run dev 명령으로 Motia 애플리케이션을 실행하고, Postman과 같은 도구를 사용하여 정의된 API 엔드포인트(localhost:3000/submit)를 테스트하며, Motia 워크벤치에서 로그와 트레이싱을 확인할 수 있습니다. 🚀