express에서 OpenAPI를 유형으로 사용
5904 단어 tech
이른바 Open API
Open API는 RESTful API를 설명하는 형식입니다.yaml 형식 등으로 기술할 수 있고, 스웨거 에디터 등을 이용해 웹에서 다음과 같이 정의된 API를 열람할 수 있다.
최근에는 이 yaml 파일에서 Type Script 유형을 생성하는 구조도 있는데 제가 사용하도록 해주세요https://github.com/horiuchi/dtsgenerator.
이것은 OpenAPI의 규격에 따라yaml 파일에서 d.ts를 토출하는 프로그램 라이브러리는 매우 편리하지만,ts로express를 쓰려고 할 때,express가 생성한 유형을 어떻게 연결하는지 고민입니다.
그래서 이번에는 dtsgenerator에서 생성한 코드를 이용하여express를 생성하는 TypeScript 파일의 생성기를 만들었습니다.
저는express-ts-generator입니다.
사용법
먼저 설치
$ npm install dtsgenerator express-ts-generator --save-dev
openapi.yml 생성 파일 지정하기$ npx dtsgen openapi/openapi.yaml -o ./src/@types/openapi.d.ts && npx apigen -s ./src/@types/openapi.d.ts -d ./src/@types/api.ts
이 실행되면 다음 파일과 같이 express의 Controller 옆에 있는 TypeScript 파일이 생성됩니다.import { Controller } from 'express-ts-generator';
export namespace Music$MusicIdController {
export type Get = Controller<{
response: Paths.Music$MusicId.Get.Responses.$200;
}>;
}
export namespace MusicsController {
export type Get = Controller<{
response: Paths.Musics.Get.Responses.$200;
}>;
export type Post = Controller<{
body: Paths.Musics.Post.RequestBody;
}>;
}
express 측면에서 활용import { SomeController } from './types/api';
export const Post: SomeController.Post = async (
request,
response
): Promise<void> => {
// request and response will be typed automatically
};
export const Get: SomeController.Get = async (
request,
response
): Promise<void> => {
// request and response will be typed automatically
};
사용하면 이런 느낌으로 리퀘스트와response의 유형을 강력하게 보충합니다!가능하다면, github가 스타가 될 수 있다면 나는 매우 기쁠 것이다!
express의 리퀘스트든response든 모두 형식이 첨부되어 있어 프로그래밍이 매우 순조롭다.
Reference
이 문제에 관하여(express에서 OpenAPI를 유형으로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/steelydylan/articles/express-ts-generator텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)