У меня есть приложение Front End, написанное на VueJs и Typescript.
У меня также есть сервер, написанный на PHP, который в настоящее время конвертируется в NestJs.
Все это находится в одном и том же монорепозитории, поэтому у меня есть общие типы для DTO.
Мне бы очень хотелось, если бы можно было создать какой-то помощник, который будет понимать маршруты в Nest и создавать для них некоторые интерфейсы в Typescript, поэтому, когда я сделаю какой-то пост/доберусь до какого-то маршрута, у него будет Typescript типы для этого маршрута.
Является ли это возможным? Я фантазирую?
заранее спасибо
Ознакомьтесь с этим документом от NestJS: https://docs.nestjs.com/openapi/introduction.
Пакет Swagger из NestJS может генерировать спецификацию OpenAPI, которая является отраслевым стандартом для определения API. .
Например, вы можете генерировать типы Typescript, генерировать целые серверные части или вызывающие интерфейсные API поверх библиотек, таких как axios
или fetch
, которые все строго типизированы. Вы даже можете создавать клиентские интерфейсы для нескольких языков из общей спецификации API. Вы можете сделать это с помощью генераторов OpenAPI (или вы можете написать свой собственный ;)). https://openapi-generator.tech/docs/generators/typescript-fetch
Подводя итог, шаги, которые вы можете предпринять, следующие:
Это гораздо сложнее сделать, это возможно путем извлечения чтения Typescript AST, поскольку информация о типе не существует во время выполнения, как объект JSON. Интересный проект: trpc.io
Значит, не наоборот, я не могу сгенерировать FE API, используя определения TS?