TypeScript моделі для Open API Specification v3.1.0
Щоб використовувати моделі Open API Specification v3.1.0, необхідний TypeScript v4.1+, через Template Literal Types.
Встановлення:
npm i @ts-stack/openapi-spec
Репозиторій із @ts-stack/openapi-spec
Давним-давно вже існують аналогічні моделі для OAS, але почавши ними користуватись, побачив хаки із типом any у визначенні моделей, що нівелюють TypeScript фічі, ради чого і були створені ці моделі. Чого тільки вартий хак із PathsObject, що по-суті перекреслює дві третини усіх TypeScript моделей цієї бібліотеки. І це при тому, що дану бібліотеку скачують більше, ніж 300 тис. разів на тиждень, і використовують її такі відомі компанії як loopback.
Хоча автор цієї бібліотеки даний хак описує як:
Hack for allowing ISpecificationExtension
але думаю можна легко обійтись без нього і все-таки використовувати Specification Extensions.
Як це реалізовано в мене:
import { OasObject, SpecificationExtensions } from '@ts-stack/openapi-spec';
type ExtendedOasObject = OasObject & SpecificationExtensions<'x-one' | 'x-two'>;
const extendedOasObject: ExtendedOasObject = {
info: {title: '', version: ''},
openapi: '',
'x-one': '',
'x-two': '',
};
Окрім кращого визначення TypeScript моделей, у мене додано документацію до усіх моделей та усіх їхніх властивостей.
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарівОтже OAS 3.1.0 Released!
Змін по моделям немає, є лише невеликі зміни в їхніх описах. Я зробив відповідні зміні у
@ts-stack/open-api-specv3.1.0