İsteğe Bağlı Alanlar
Coddy'nin Node.js Journey'sinin REST API'leri bölümünün bir parçası. Ders 9 / 25.
Tam bir görev için başlık ve tamamlandı değeri gerekir. Bir PATCH isteği bunlardan yalnızca birini değiştirebilir. Bir nesne şemasında .partial() çağırmak, mevcut alanlara ilişkin kuralları korurken alanlarını isteğe bağlı hâle getirir.
const ChangeBook = Book.partial();
ChangeBook.safeParse({year: 2000});Atlanan başlığa izin verilir, ancak sağlanan bir yıl yine de sayı olmalıdır. Partial, hatalı değerleri geçerli hâle getirmez. Özgün şema değişmeden kalır; bu nedenle bir kaynağın tamamını değiştiren bir rota tüm alanları zorunlu tutmaya devam edebilir.
Book.partial({ pages: true }) yalnızca pages alanını isteğe bağlı hâle getirir; diğer alanlar zorunlu kalır. Oluşturma isteğinde genellikle varsayılan değeri olan bir alan atlanırken ana başlık yine de zorunlu tutulur. Ayrıştırma işleminden sonra const { pages = 1 } = result.data, alan atlandığında 1 değerini sağlar.
Görev
Kolayexercise.js dosyasındaki iki şema atamasını düzenle. Task değerini tam kayıt olarak bırak. ChangeTask değerinin PATCH için alanların atlanmasını kabul etmesini sağla. NewTask değerinin bir başlık gerektirmesini, ancak done alanının atlanmasına izin vermesini sağla.
/result adresine POST yöntemiyle {} gönder: {"change":true,"create":false} sonucunu bekle. {"title":"Read"} gövdesi her iki denetimden de geçer. Gönderilen değerlerin yine de doğru türde olması gerekir: {"done":"false"} her iki denetimden de geçemez.
İlk GET /result isteğinde verilen {} örneği kullanılır. Diğer girdileri denemek için JSON gövdesiyle POST /result kullan.
Kendin dene
import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
const ChangeTask = Task;
const NewTask = Task;
export function exercise(body) {
return { change: ChangeTask.safeParse(body).success, create: NewTask.safeParse(body).success };
}
REST API'leri bölümündeki tüm dersler
1Kaynaklar ve Fiiller
Kaynaklar ve URL'lerPOST ile Oluşturma4Tarayıcılar, Sürümler ve Yapılandırma
Origin NedirBaşka Bir Origin'e İzin VermeCORSAPI'yi Çağıran Bir Sayfa2Doğrulama ve Hatalar
Girdiyi DoğrulamaKendi başına pratik yap: Express playground