AI API Yanıtlarını Zod ve AJV ile Doğrulama ve Frontend’inizi Koruma
Yapay zeka API’leri giderek daha popüler hale geliyor. Ancak, bu API’lerden gelen verilerin beklenmedik biçimlerde veya hatalı şekilde gelmesi olasılığı da yüksektir. Bu durum, frontend uygulamalarınızın çökmesine veya beklenmedik davranışlar sergilemesine neden olabilir. Bu sorunu çözmek için güçlü veri doğrulama araçlarına ihtiyaç duyarsınız. İşte tam bu noktada Zod ve AJV devreye giriyor.
Zod ve AJV, JavaScript ve TypeScript için güçlü veri doğrulama kütüphaneleridir. Bu kütüphaneler, API yanıtlarınızı önceden tanımlanmış şemalara göre doğrulamanıza olanak tanır. Böylece, beklenmeyen veriler nedeniyle oluşabilecek sorunları önleyebilirsiniz. Örneğin, API’den gelen bir kullanıcı nesnesinin tüm gerekli alanları içerdiğinden emin olmak veya bir sayının belirli bir aralıkta olduğundan emin olmak için bu kütüphaneleri kullanabilirsiniz.
Zod ile API Yanıt Doğrulama
Zod, TypeScript ile mükemmel bir uyumluluğa sahiptir ve daha okunabilir ve yazımı daha kolay bir sözdizimi sunar. Aşağıdaki örnekte, bir kullanıcı nesnesini doğrulamak için Zod nasıl kullanılacağını görebilirsiniz:
import { z } from 'zod';
const userSchema = z.object({
id: z.number(),
name: z.string().min(3),
email: z.string().email(),
});
const apiResponse = { id: 1, name: 'Fatih', email: 'fatih@soysal.com' };
const validatedResponse = userSchema.parse(apiResponse);
console.log(validatedResponse); // Doğrulanmış kullanıcı nesnesi
Bu örnekte, userSchema, kullanıcı nesnesinin yapısını tanımlar. z.object(), bir nesne şeması oluştururken, z.number(), z.string() ve z.email() gibi fonksiyonlar da veri tiplerini belirtir. userSchema.parse() fonksiyonu, API yanıtını doğrulama işlemini gerçekleştirir. Eğer yanıt şema ile uyuşmazsa, bir hata fırlatılır. Bu, uygulamanızın çökmesini engeller.
AJV ile API Yanıt Doğrulama
AJV, daha esnek bir yaklaşım sunar ve JSON Schema’yı destekler. Bu, farklı API’lerden gelen çeşitli veri yapılarıyla çalışırken daha geniş bir uyumluluk sağlar. Ancak, Zod’a göre daha fazla konfigürasyon gerektirebilir.
const Ajv = require('ajv');
const ajv = new Ajv();
const schema = {
type: "object",
properties: {
id: { type: "integer" },
name: { type: "string", minLength: 3 },
email: { type: "string", format: "email" }
},
required: ["id", "name", "email"]
};
const apiResponse = { id: 1, name: 'Fatih', email: 'fatih@soysal.com' };
const valid = ajv.validate(schema, apiResponse);
if (valid) {
console.log(apiResponse); // Doğrulanmış kullanıcı nesnesi
} else {
console.error(ajv.errors); // Doğrulama hataları
}
Bu örnekte, AJV kullanarak aynı kullanıcı nesnesini doğruladık. JSON Schema’da, her alanın tipi, minimum uzunluğu ve gerekli olup olmadığı açıkça belirtilir. ajv.validate() fonksiyonu, API yanıtını şema ile karşılaştırır ve sonuç olarak bir boolean değeri döndürür. Hatalar, ajv.errors özelliği ile erişilebilir.
Zod mu AJV mi?
Hangisini kullanacağınız projenizin ihtiyaçlarına ve tercihlerinize bağlıdır. Zod, TypeScript projeleri için daha iyi bir seçim olabilir çünkü daha iyi tip güvenliği ve daha temiz bir sözdizimi sunar. AJV ise daha esnek ve JSON Schema ile uyumlu olması nedeniyle daha geniş bir uyumluluk sunar. Her iki kütüphane de güçlü ve etkili veri doğrulama araçlarıdır.
Önemli Not: API yanıtlarını doğrulamak, frontend uygulamalarınızın güvenilirliğini ve sağlamlığını artırır. Beklenmedik veriler nedeniyle oluşabilecek hataları yakalamanıza ve kullanıcılara daha iyi bir deneyim sunmanıza yardımcı olur. Bu kütüphaneleri kullanarak, API geliştirme sürecinizde olası sorunları önceden tespit edebilir ve daha sağlam bir uygulama geliştirebilirsiniz. Daha detaylı bilgi için fatihsoysal.com adresini ziyaret edebilirsiniz.
Daha fazla bilgi için aşağıdaki kaynaklara göz atabilirsiniz:
#Etiketler: Zod, AJV, API doğrulama, yapay zeka, frontend, hata yönetimi, JavaScript, TypeScript, API validation, AI, frontend development, veri doğrulama, JSON Schema