Membuat REST API Ringan dengan Hono dan Prisma untuk Cloudflare Workers
Pelajari cara membangun REST API cepat dan murah menggunakan Hono (framework TypeScript ringan) dan Prisma yang di-deploy ke Cloudflare Workers. Cocok untuk developer Indonesia yang ingin serverless tanpa ribet.
Bayangkan kamu ingin membuat API untuk aplikasi kecil atau prototipe, tapi malas ribet setup server. Atau mungkin kamu sering begadang karena server Node.js tiba-tiba crash. Tenang, ada solusi modern yang ringan, cepat, dan gratis: Cloudflare Workers dengan Hono dan Prisma.
Apa Itu Hono dan Kenapa Cocok buat Developer Indonesia?
Hono (Hono-ri) adalah framework TypeScript yang didesain khusus untuk edge computing. Kelebihannya:
- Ukuran super kecil: kurang dari 14KB.
- Performa tinggi: request per detik bisa mencapai puluhan ribu.
- Kompatibel dengan banyak runtime: Cloudflare Workers, Deno, Bun, Node.js, dll.
Bagi kamu yang sering hadapi internet lambat atau keterbatasan server, Hono di Cloudflare Workers bisa jadi jawaban. Edge server mendekatkan API ke pengguna, mengurangi latency.
Prisma: ORM Modern yang Work di Edge
Prisma adalah ORM TypeScript yang memudahkan interaksi database. Versi terbaru (Prisma Accelerate) mendukung Cloudflare Workers dengan koneksi database via HTTP, bukan TCP. Jadi kamu bisa pakai database favorit (PostgreSQL, MySQL, SQLite) tanpa khawatir port diblokir.
Setup Project
Buat folder baru dan inisialisasi project:
mkdir hono-prisma-cf
cd hono-prisma-cf
npm init -y
Install dependencies:
npm install hono prisma @prisma/client
npm install -D @cloudflare/workers-types wrangler
Buat file tsconfig.json:
{
"compilerOptions": {
"target": "ES2020",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"jsx": "react-jsx",
"types": ["@cloudflare/workers-types"]
}
}
Inisialisasi Prisma:
npx prisma init
Ubah .env isi DATABASE_URL sesuai database-mu, misal PostgreSQL dari Neon atau Supabase.
Membuat Model Prisma
Buka prisma/schema.prisma dan buat model sederhana, misal Todo:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Todo {
id Int @id @default(autoincrement())
title String
completed Boolean @default(false)
createdAt DateTime @default(now())
}
Jalankan migrasi:
npx prisma migrate dev --name init
Generate Prisma Client:
npx prisma generate
Membangun Endpoint CRUD dengan Hono
Buat file src/index.ts:
import { Hono } from 'hono'
import { PrismaClient } from '@prisma/client'
const app = new Hono()
const prisma = new PrismaClient()
// Get all todos
app.get('/todos', async (c) => {
const todos = await prisma.todo.findMany()
return c.json(todos)
})
// Create todo
app.post('/todos', async (c) => {
const body = await c.req.json()
const todo = await prisma.todo.create({
data: { title: body.title }
})
return c.json(todo, 201)
})
// Update todo
app.put('/todos/:id', async (c) => {
const id = Number(c.req.param('id'))
const body = await c.req.json()
const todo = await prisma.todo.update({
where: { id },
data: { title: body.title, completed: body.completed }
})
return c.json(todo)
})
// Delete todo
app.delete('/todos/:id', async (c) => {
const id = Number(c.req.param('id'))
await prisma.todo.delete({ where: { id } })
return c.json({ message: 'Deleted' })
})
export default app
Deploy ke Cloudflare Workers
Pertama, install Wrangler dan login:
npx wrangler login
Buat file wrangler.toml:
name = "hono-prisma-api"
main = "src/index.ts"
compatibility_date = "2024-04-01"
node_compat = true
Karena Prisma Client butuh akses database via HTTP, kita perlu mengatur binding environment variable. Tambahkan di wrangler.toml:
[vars]
DATABASE_URL = "your-database-url"
Jangan lupa masukkan secret di Cloudflare Dashboard untuk production.
Build dan deploy:
npx wrangler deploy
Selesai! API-mu kini live di https://hono-prisma-api.your-subdomain.workers.dev.
Kenapa Cara Ini Keren buat Developer Indonesia?
- Gratis: Cloudflare Workers punya free tier 100k request per hari.
- Cepat: Edge server di Indonesia (atau Singapura) meminimalkan latency.
- Mudah di-scale: Tanpa khawatir server down.
Dengan Hono + Prisma + Cloudflare Workers, kamu bisa bikin API untuk proyek freelance, prototipe startup, atau tugas kuliah tanpa pusing infrastruktur.
Kesimpulan
Hono dan Prisma adalah kombinasi powerfull untuk REST API modern di edge. Coba sendiri dan rasakan perbedaannya. Kalau ada kendala, tanyakan di komunitas developer Indonesia. Selamat ngoding!