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 } } ) ,
} ;
} ,
} ) ;RPC와 같은 인터페이스를 사용하여 클라이언트의 API를 소비합니다.
const result = await client . getPosts ( {
headers : { 'x-pagination-page' : 1 } ,
query : { skip : 0 , take : 10 } ,
// ^-- Fully typed!
} ) ; 계약을 작성하고 서버에서 구현 한 다음 클라이언트에서 소비하십시오. 점차적으로 채택하고 팀과 시험을 치른 다음 배송을 더 빨리 배송하십시오.
TS-Rest를 가능하게하는 데 도움을 준이 훌륭한 사람들 (이모티콘 키)에게 큰 감사를드립니다.
Youssef Gaber ? | Hermansson 당 | Grégory Houllier | 마이클 안젤로 | 피터 벤터 | 리발디 아 | 조나단 화이트 |
맥스 브로스 나만 ? | 올리버 버틀러 ? ? ? | Adrian Barylski | Neil A. Dobson | 에릭 | 벤 | LW ? |
앤드류 밴스 |
2022 년 첫 커밋 이후 우리는 꾸준히 성장하고 있습니다. 우리는 우리의 진보를 자랑스럽게 생각하며 미래에 대해 흥분합니다.