متزايدة للاعتماد متزايد من العميل والخادم المشابهة للاعتماد من أجل نهاية سحرية إلى نهاية تجربة مكتوبة؟
يوفر TS-REST طريقة بسيطة لتحديد عقد لواجهة برمجة التطبيقات الخاصة بك ، والتي يمكن استهلاكها وتنفيذها من خلال التطبيق الخاص بك ، مما يتيح لك نهاية السلامة من النوع إلى النهاية دون متاعب أو توليد رمز.
قم بتحديد عقد API بسهولة في مكان ما مشترك
const contract = c . router ( {
getPosts : {
method : 'GET' ,
path : '/posts' ,
query : z . object ( {
skip : z . number ( ) ,
take : z . number ( ) ,
} ) , // <-- Zod schema
responses : {
200 : c . type < Post [ ] > ( ) , // <-- OR normal TS types
} ,
headers : z . object ( {
'x-pagination-page' : z . coerce . number ( ) . optional ( ) ,
} ) ,
} ,
} ) ;تحقيق العقد على الخادم الخاص بك ، مع جهاز توجيه آمن من النوع:
const router = s . router ( contract , {
getPosts : async ( { params : { id } } ) => {
return {
status : 200 ,
body : prisma . post . findUnique ( { where : { id } } ) ,
} ;
} ,
} ) ;استهلك واجهة برمجة التطبيقات على العميل بواجهة تشبه RPC:
const result = await client . getPosts ( {
headers : { 'x-pagination-page' : 1 } ,
query : { skip : 0 , take : 10 } ,
// ^-- Fully typed!
} ) ; قم بإنشاء عقد ، وتنفيذه على الخادم الخاص بك ، ثم يستهلكه في عميلك. اعتماد بشكل تدريجي ، قم بتجربة فريقك ، ثم احصل على الشحن بشكل أسرع.
شكر كبير لجميع هؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية) ، الذين ساعدوا في جعل TS-Rest ممكنًا:
يوسف جابر ؟ | لكل هيرمانسون | جريجوري هولير | مايكل أنجيلو | بيتر فنتر | ريفالدي آه | جوناثان وايت |
ماكس بروسناان ؟ | أوليفر بتلر ؟ ؟ ؟ | أدريان باريلسكي | نيل أ. دوبسون | إريك تفعل | بن | LW ؟ |
أندرو فانس |
منذ التزامنا الأول في عام 2022 ، كنا ننمو بشكل مطرد. نحن فخورون بتقدمنا ونحن متحمسون للمستقبل.