DIPERBARUI: 2026-11-06
[B3-M1]Menengahā± 35 Mnt Baca + 50 Mnt Praktik

Merancang REST API, Route Handlers & Validasi Skema Data

Membangun Endpoint HTTP yang Idempoten, Aman & Tervalidasi di Next.js Route Handlers

BAGIKAN MODUL:
[KONTRAK HASIL BELAJAR // B3-M1]Standar Kompetensi Industri
ā± 35 Mnt Bacaā€¢āš” 50 Mnt Praktik•Lulus: ≄ 80/100 Poin

01. Target Pembelajar & Prasyarat

Full-stack developer yang membangun backend API.

02. Kompetensi Konseptual (Level 1–2)

  • āœ“Menjelaskan perbedaan sifat idempoten pada GET/PUT vs non-idempoten pada POST.

03. Kompetensi Praktis & Artefak Nyata (Level 3–4)

  • āœ“Membangun Route Handler POST /api/orders lengkap dengan validasi skema input.
Artefak yang Dibangun: Route Handler `route.ts` siap produksi.

04. Aplikasi Nyata & Verifikasi

Penerapan Industri: Endpoint pesanan `/api/orders` di aplikasi produksi Z-Automation.

Metode Verifikasi: Mengirimkan request dengan payload tidak lengkap via curl dan memverifikasi respons error 400 Bad Request.

[BAGIAN 01 // MASALAH & URGENSI ARSITEKTURAL]

Mengapa Subjek Ini Krusial dalam Rekayasa Nyata?

Pelajari standar perancangan REST API (GET, POST, PATCH), kode status HTTP yang benar, validasi payload runtime, dan penanganan error terstruktur.

Dalam lingkungan produksi, kegagalan memahami batas-batas arsitektur sistem sering kali menyebabkan bug yang sulit dilacak, pemborosan biaya komputasi, atau antarmuka yang lambat bagi pengguna.

[BAGIAN 02 // MEKANISME DI BALIK LAYAR]

Bagaimana Sistem Sebenarnya Bekerja di Tingkat Protokol

Disiplin Desain REST API

Sebuah API yang baik bersifat dapat diprediksi. Metode HTTP memiliki arti semantik yang tegas: `GET` hanya untuk membaca data, `POST` untuk membuat entitas baru, dan `DELETE` untuk menghapus.

[DIAGRAM TEKNIS SVG INTERAKTIF // DIAG-02]

Alur Arsitektur Sistem Otonom & Runtime

LANGKAH 1 DARI 4
ENTITAS AKTIF:User -> Sistem
01
02
03
04

Pesan bahasa alami diterima melalui antarmuka web atau webhook chat.

[LIVE PAYLOAD INSPECTOR]JSON 2026
{
  "input": "Berapa estimasi biaya pembuatan landing page bisnis?"
}
[BAGIAN 03 // MATRIKS KESALAHPAHAMAN]

Koreksi Asumsi Umum vs Realitas Rekayasa

ƗASUMSI KELIRU

ā€œSelalu mengembalikan 200 OK dengan isi { error: 'Gagal' } adalah praktik yang baik.ā€

āœ“REALITAS SISTEM

Ini adalah anti-pattern yang merusak pemantauan HTTP dan caching perantara. Gunakan kode status standar (400, 404, 500).

[BAGIAN 04 // LABORATORIUM PRAKTIS & KODE]

Implementasi Langkah-demi-Langkah

Hasil akhir yang diharapkan: Next.js Route Handler yang memvalidasi pesanan layanan.

STRUKTUR PROYEK DIREKOMENDASIKAN:
src/app/api/demo-orders/
└── route.ts

1Implementasi Route Handler Tervalidasi

Menerima POST JSON dan memverifikasi field wajib.

route.ts•typescript
āœ“Tested Successfully
LINGKUNGAN TERUJI: Next.js 16.4.318 BARIS KODE
1// src/app/api/demo-orders/route.ts
2import { NextResponse } from 'next/server';
3
4export async function POST(request: Request) {
5 try {
6 const body = await request.json();
7 if (!body.nama || !body.paketId || typeof body.nomorWa !== 'string') {
8 return NextResponse.json(
9 { sukses: false, error: 'Field nama, paketId, dan nomorWa wajib diisi.' },
10 { status: 400 }
11 );
12 }
13 const orderId = 'ORD_' + Date.now();
14 return NextResponse.json({ sukses: true, orderId }, { status: 201 });
15 } catch (err) {
16 return NextResponse.json({ sukses: false, error: 'Invalid JSON body' }, { status: 400 });
17 }
18}
KEPUTUSAN ARSITEKTURAL UTAMA:
• Mengembalikan status 201 Created: Sesuai standar RFC HTTP untuk pembuatan entitas baru.
PERINTAH EKSEKUSI TERMINAL:
$ Uji dengan curl -X POST http://localhost:3000/api/demo-orders
OUTPUT YANG DIHARAPKAN:
{ sukses: true, orderId: 'ORD_...' }
[BAGIAN 05 // PANDUAN TROUBLESHOOTING & TANTANGAN]

Mengantisipasi Masalah Umum & Tantangan Ekstensi

Pesan Error: Error parsing JSON
Penyebab: Header Content-Type bukan application/json
Solusi Eksak: Sertakan header Content-Type: application/json.
⚔ TANTANGAN EKSTENSI MANDIRI:

Tambahkan validasi format nomor WhatsApp Indonesia (harus berawalan 08 atau 62).

[RUBRIK EVALUASI KOMPETENSI 100 POIN // B3-M1]

Uji Kompetensi Mandiri & Verifikasi Hasil

Standar kelulusan Z-Automation mewajibkan skor minimum 80 / 100 Poin dengan komponen Implementasi Praktis minimal 21 / 35 Poin (60%). Jawab soal diagnostik dan centang hasil pengujian praktis Anda.

BAGIAN A // PERTANYAAN DIAGNOSTIK KONSEPTUAL & TEKNIS (40 POIN)

01.Kode status HTTP mana yang paling tepat jika klien mengirim payload JSON yang kehilangan data wajib?

BAGIAN B // DAFTAR PERIKSA HASIL IMPLEMENTASI PRAKTIS (35 POIN — MIN. 21 POIN)

Centang item di bawah ini hanya jika Anda telah menjalankan kode di komputer Anda dan mengamati output yang benar:

Lanjutkan Menggulir
untuk Eksplorasi
Edukasi & Lab
Halaman Selanjutnya