Modern yazılım geliştirme dünyasında, istemci ve sunucu arasındaki tutarlılığı sağlamak önemli bir zorluktur. Contract First yöntemi etkili bir çözüm olarak ortaya çıkmış ve şimdi @feelai/contract kütüphanesi tarafından güçlü bir şekilde desteklenmektedir.
Contract First, uygulama programlama arayüzünün (API) ayrıntılı uygulamadan önce belirlendiği bir yazılım geliştirme yöntemidir. API'yi belirlemeden önce kod yazmak yerine, bu yöntem şunları gerektirir:
Contract First'ın faydaları şunlardır:
@feelai/contract, TypeScript projelerinde Contract First yöntemini uygulamaya yardımcı olan bir npm kütüphanesidir. Bu kütüphane, istemci ve sunucu arasında döngüsel bağımlılık sorunları olmadan paylaşılabilen, tür-güvenli (type-safe) bir şekilde API sözleşmesini tanımlamak için araçlar sunar.
typebox kullanırbun add @feelai/contract
# veya
npm install @feelai/contract
# veya
yarn add @feelai/contractAşağıda, görev yönetimi uygulaması için bir sözleşme tanımı örneği bulunmaktadır:
import { Contract, defineApiMap, defineSocketMap } from "@feelai/contract";
import { Type } from "typebox";
// Şema Tanımlama
export const TaskSchema = Type.Object({
id: Type.String(),
title: Type.String(),
completed: Type.Boolean(),
createdAt: Type.Number(),
});
// API uç noktalarını tanımlama
const api = defineApiMap({
getTasks: {
output: Type.Array(TaskSchema),
},
createTask: {
input: Type.Object({
title: Type.String(),
}),
output: TaskSchema,
},
});
// Soket olaylarını tanımlama
const socket = defineSocketMap({
taskUpdates: {
client: {
subscribe: Type.Object({}),
},
server: {
taskCreated: TaskSchema,
taskUpdated: TaskSchema,
},
},
});
// Sözleşmeyi oluşturma ve dışa aktarma
export const todoListContract = new Contract().api(api).socket(socket);
export type TodoListContract = typeof todoListContract;@feelai/contract'ın güçlü yanlarından biri otomatik tip çıkarımıdır:
import { StaticApiMap, StaticSocketMap } from "@feelai/contract";
import { todoListContract } from "./todoListContract";
// API uygulaması için Türler
export type ApiTypes = StaticApiMap<typeof todoListContract>;
// Soket uygulaması için Türler
export type SocketTypes = StaticSocketMap<typeof todoListContract>;Contract First yöntemi, @feelai/contract kütüphanesi ile birleştiğinde, modern web uygulama geliştirmeye yapılandırılmış bir yaklaşım sunar. Uçtan uca tür güvenliği sağlama, istemci ve sunucu arasındaki iletişim hatalarını en aza indirme ve paralel geliştirmeyi destekleme yetenekleriyle, orta ila büyük ölçekli TypeScript projeleri için değerli bir araçtır.
@feelai/contract hakkında daha fazla bilgi edinmek için şurayı ziyaret edin: https://www.npmjs.com/package/@feelai/contract