ts rest
v3.51.0
ไคลเอนต์ RPC และผู้ช่วยเซิร์ฟเวอร์ที่นำมาใช้ร่วมกันได้เพิ่มขึ้นสำหรับประสบการณ์การพิมพ์ที่มีมนต์ขลัง
TS-REST เสนอวิธีง่ายๆในการกำหนดสัญญาสำหรับ API ของคุณซึ่งสามารถใช้งานได้และนำไปใช้โดยแอปพลิเคชันของคุณทำให้คุณจบประเภทความปลอดภัยโดยไม่ต้องยุ่งยากหรือสร้างรหัส
กำหนดสัญญา 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 } } ) ,
} ;
} ,
} ) ;กิน API บนไคลเอนต์ด้วยอินเทอร์เฟซคล้าย RPC:
const result = await client . getPosts ( {
headers : { 'x-pagination-page' : 1 } ,
query : { skip : 0 , take : 10 } ,
// ^-- Fully typed!
} ) ; สร้างสัญญานำไปใช้กับเซิร์ฟเวอร์ของคุณจากนั้นใช้ในไคลเอนต์ของคุณ นำไปใช้เพิ่มขึ้นทดลองใช้กับทีมของคุณจากนั้นจัดส่งเร็วขึ้น
ขอบคุณมากสำหรับผู้คนที่ยอดเยี่ยมเหล่านี้ (คีย์อีโมจิ) ที่ช่วยให้ TS-Rest เป็นไปได้:
Youssef Gaber - | ต่อเฮอร์แมนสัน | Grégory Houllier | Michael Angelo | Pieter Venter | Rifaldhi Aw | โจนาธานไวท์ |
Max Brosnahan - | โอลิเวอร์บัตเลอร์ - - - | Adrian Barylski | Neil A. Dobson | Eric ทำ | เบ็น | LW - |
Andrew Vance |
ตั้งแต่การกระทำครั้งแรกของเราในปี 2565 เราเติบโตอย่างต่อเนื่อง เราภูมิใจในความก้าวหน้าของเราและเราตื่นเต้นกับอนาคต