¿Ayudantes y ayudantes de servidor con forma de RPC incorporable incrementalmente para una experiencia mágica de tipo a extremo?
TS-Rest ofrece una forma simple de definir un contrato para su API, que puede consumir e implementar su aplicación, lo que le brinda seguridad de tipo a extremo sin la generación de problemas o código.
Defina fácilmente su contrato de API en algún lugar compartido
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 ( ) ,
} ) ,
} ,
} ) ;Cumplir el contrato en su servidor, con un enrutador seguro:
const router = s . router ( contract , {
getPosts : async ( { params : { id } } ) => {
return {
status : 200 ,
body : prisma . post . findUnique ( { where : { id } } ) ,
} ;
} ,
} ) ;Consume la API en el cliente con una interfaz similar a RPC:
const result = await client . getPosts ( {
headers : { 'x-pagination-page' : 1 } ,
query : { skip : 0 , take : 10 } ,
// ^-- Fully typed!
} ) ; Cree un contrato, impleméntelo en su servidor y luego consumalo en su cliente. Adoptar incrementalmente, juzgarlo con su equipo, luego obtener el envío más rápido.
Masivo gracias a todas estas personas maravillosas (Key Emoji), que han ayudado a hacer posible TS-Rest:
Youssef Gaber ? | Por Hermansson | Grégory Houllier | Michael Angelo | Pieter Venter | Rifaldhi aw | Jonathan White |
Max Brosnahan ? | Oliver Butler ? ? ? | Adrian Barylski | Neil A. Dobson | Eric Do | Ben | LW ? |
Andrew Vance |
Desde nuestro primer compromiso en 2022 hemos estado creciendo constantemente. Estamos orgullosos de nuestro progreso y estamos entusiasmados con el futuro.