Šiuolaikiniame programinės įrangos kūrimo pasaulyje užtikrinti kliento ir serverio nuoseklumą yra nemažas iššūkis. Contract First metodas tapo veiksmingu sprendimu, o dabar jį stipriai palaiko @feelai/contract biblioteka.
Contract First yra programinės įrangos kūrimo metodas, kuriame programavimo sąsajos (API) apibrėžimas nustatomas prieš detalizuojant implementaciją. Vietoj to, kad pirmiausia parašytumėte kodą, o paskui apibrėžtumėte API, šis metodas reikalauja:
Contract First privalumai apima:
@feelai/contract yra npm biblioteka, padedanti įgyvendinti Contract First metodą TypeScript projektuose. Ši biblioteka suteikia įrankius API sutartims apibrėžti tipų saugos principu (type-safe), kurias galima bendrinti tarp kliento ir serverio, nesukeliant ciklinių priklausomybių problemų.
typebox.bun add @feelai/contract
# arba
npm install @feelai/contract
# arba
yarn add @feelai/contractŠtai pavyzdys, kaip apibrėžti sutartį darbų valdymo programai:
import { Contract, defineApiMap, defineSocketMap } from "@feelai/contract";
import { Type } from "typebox";
// Schemos apibrėžimas
export const TaskSchema = Type.Object({
id: Type.String(),
title: Type.String(),
completed: Type.Boolean(),
createdAt: Type.Number(),
});
// API galinių taškų apibrėžimas
const api = defineApiMap({
getTasks: {
output: Type.Array(TaskSchema),
},
createTask: {
input: Type.Object({
title: Type.String(),
}),
output: TaskSchema,
},
});
// Socket įvykių apibrėžimas
const socket = defineSocketMap({
taskUpdates: {
client: {
subscribe: Type.Object({}),
},
server: {
taskCreated: TaskSchema,
taskUpdated: TaskSchema,
},
},
});
// Sutarties sukūrimas ir eksportavimas
export const todoListContract = new Contract().api(api).socket(socket);
export type TodoListContract = typeof todoListContract;Vienas iš @feelai/contract privalumų yra automatinio tipų išvedimo galimybė:
import { StaticApiMap, StaticSocketMap } from "@feelai/contract";
import { todoListContract } from "./todoListContract";
// API implementacijos tipai
export type ApiTypes = StaticApiMap<typeof todoListContract>;
// Socket implementacijos tipai
export type SocketTypes = StaticSocketMap<typeof todoListContract>;Contract First metodas kartu su @feelai/contract biblioteka suteikia sistemingą požiūrį į šiuolaikinių žiniatinklio programų kūrimą. Dėl galimybės užtikrinti end-to-end tipų saugumą, sumažinti kliento ir serverio komunikacijos klaidas bei palaikyti lygiagretų kūrimą, tai yra vertingas įrankis vidutinio ir didelio masto TypeScript projektams.
Norėdami sužinoti daugiau apie @feelai/contract, apsilankykite: https://www.npmjs.com/package/@feelai/contract