hobodd_hackathon_appのバックエンドAPI
サーバー: Cloudflare Workers
Database: Cloudflare d1
パッケージマネージャー: pnpm
言語: typescript
バックエンドフレームワーク: hono🔥
ORM: drizzle
Linter&formatter: biome ・・・今回はVSCodeの拡張機能で済ましてしまってます。
リクエストのバリデーション: zod
https://dbdiagram.io/d/6725be59b1b39dd8583abe27
Firebaseなどの、バックエンド開発をあまり必要としないテクノロジーをあえて使用せず、 Cloudflare Workers と、リレーショナルデータベースである Cloudflare D1 を使ってAPIを作りました。(若手のエンジニアからは出なさそうなホッとする男気)
Cloudflare Workersは無料で使えながらパフォーマンスが非常によく、Cloudflare D1はユーザーのロケーションに近いところにDBが作られるため、 世界中のどの地域から使っても高速に動作すると思います。
また、Hono🔥というホットなフレームワークは、Web標準に沿ったAPIを提供しているため、コードの可読性や移植性も悪くないと思います。 Zodでリクエストボディのバリデーションも行ってます(そのままSwaggerも生成出来るようですが、今回は時間的に割愛させていただきました。)
git clone https://github.com/beeeyan/hobodd_hackathon_api.git
pnpm install- ローカル環境にDBを構築
npx wrangler d1 execute hackathon --local --file=./schema.sql- シーディング
npx wrangler d1 execute hackathon --local --file=./seeder.sql- 起動
pnpm run dev- 本番環境へのデプロイ
pnpm run deploy