Edge Computing with Cloudflare Workers & Deno · Pelajaran

Validasi dan Penanganan Kesalahan

Validasi data permintaan yang masuk dan kembalikan respons kesalahan yang konsisten serta terstruktur dengan baik dalam API tanpa server yang dibangun dengan Workers dan Deno.

Pelajaran 3 dari 313 langkah

Validasi dan Penanganan Kesalahan adalah pelajaran Edge Computing with Cloudflare Workers & Deno gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Edge Computing with Cloudflare Workers & Deno, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Edge Computing with Cloudflare Workers & Deno mencakup 3 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Why Validate Input?

Never trust client input. A robust API validates every incoming payload before acting on it.

Validation prevents:

  • Corrupt data entering your store
  • Crashes from missing fields
  • Security issues like injection

At the edge, validation also fails fast, saving CPU and downstream calls.

Parsing the Request Body

Most APIs accept JSON. Parse it safely, malformed JSON throws.

async function readJson(request) {
  try {
    return await request.json();
  } catch {
    return null;
  }
}

Manual Field Validation

For simple schemas you can validate by hand.

Check required fields and types before continuing.

function validateUser(body) {
  const errors = [];
  if (typeof body.name !== 'string') errors.push('name is required');
  if (typeof body.age !== 'number') errors.push('age must be a number');
  return errors;
}

Schema Validation with Zod

For larger APIs, a schema library like Zod (which runs on both Workers and Deno) is cleaner and gives typed output.

import { z } from 'zod';

const UserSchema = z.object({
  name: z.string().min(1),
  age: z.number().int().positive()
});

safeParse for Graceful Errors

Use safeParse so validation never throws, you inspect the result instead.

const result = UserSchema.safeParse(body);
if (!result.success) {
  // result.error.issues describes what failed
}

Consistent Error Response Shape

Return errors in a predictable JSON shape so clients can parse them reliably.

function errorResponse(message, status, details) {
  return new Response(
    JSON.stringify({ error: message, details: details || null }),
    { status, headers: { 'Content-Type': 'application/json' } }
  );
}

Choosing the Right Status Code

Match HTTP status to the failure type:

  • 400 Bad Request, invalid body
  • 401 Unauthorized, missing auth
  • 404 Not Found
  • 422 Unprocessable Entity, semantic validation failure
  • 500 Internal Server Error, unexpected

A try/catch Safety Net

Wrap handlers in try/catch so an unexpected throw becomes a clean 500 instead of a crash.

export default {
  async fetch(request, env) {
    try {
      return await handle(request, env);
    } catch (err) {
      return errorResponse('Internal Server Error', 500);
    }
  }
};

Validating Query & Path Params

Body is not the only untrusted input, query strings and path params need checks too.

const url = new URL(request.url);
const page = Number(url.searchParams.get('page') || '1');
if (!Number.isInteger(page) || page < 1) {
  return errorResponse('Invalid page', 400);
}

Avoid Leaking Internal Details

In production, never send stack traces or raw error messages to clients.

Log the full error internally, return a generic message externally.

catch (err) {
  console.error(err);
  return errorResponse('Something went wrong', 500);
}

Best Practices Summary

Solid validation and error handling means:

  • Validate body, query, and params
  • Use a schema library for complex inputs
  • Return a consistent error shape
  • Pick correct status codes
  • Catch everything and hide internals

Quick Check

Which HTTP status best fits a request whose JSON is well-formed but fails a business validation rule?

Recap

You now validate untrusted input and return clean errors:

  • Safely parse bodies and params
  • Validate manually or with Zod's safeParse
  • Use a consistent error JSON shape and correct status codes
  • Wrap handlers in try/catch and hide internal details

Reliable validation is what separates a toy API from a production-grade one.

Gratis untuk memulai

Belajar Edge Computing with Cloudflare Workers & Deno dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
47

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Validasi dan Penanganan Kesalahan” gratis?

Ya — teks lengkap “Validasi dan Penanganan Kesalahan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Edge Computing with Cloudflare Workers & Deno, upgrade ke CoddyKit PRO. Kursus Edge Computing with Cloudflare Workers & Deno mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Validasi dan Penanganan Kesalahan”?

Validasi data permintaan yang masuk dan kembalikan respons kesalahan yang konsisten serta terstruktur dengan baik dalam API tanpa server yang dibangun dengan Workers dan Deno. Kamu berlatih Edge Computing with Cloudflare Workers & Deno dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Edge Computing with Cloudflare Workers & Deno?

Tidak diperlukan pengalaman sebelumnya. Edge Computing with Cloudflare Workers & Deno di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 3.

Berapa lama pelajaran “Validasi dan Penanganan Kesalahan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Edge Computing with Cloudflare Workers & Deno ini?

Ya. Setiap pelajaran Edge Computing with Cloudflare Workers & Deno menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Merancang API RESTful
  2. Perutean & Perantara
  3. Validasi dan Penanganan Kesalahan
← Kembali ke Edge Computing with Cloudflare Workers & Deno