Как безопасно заставить Typescript работать с пользовательским бэкенд API

В своем приложении я использую маршруты конечных точек API. В этих конечных точках http-запросы о данных обрабатываются бэкендом с помощью PRISMA ORM.

Однако, мне пришлось использовать что-то другое для фронтенда, и я начал писать типы typescript, которые похожи на типы моего бэкенда. Это очень контринтуитивно, если исходить из языков программирования типа haskell или других типизированных языков.

Похоже, что конечная точка находится посередине и является источником всех видов несовместимости, которые могут возникнуть в будущем. Потому что теперь у меня есть 3 точки отказа: конечная точка, API и внешние typescript'ы (которые даже не скомпилированы и не доступны во время выполнения)

Существует ли более безопасный с точки зрения типов способ решения проблемы endpoint-in-the-middle?

Я рассмотрел несколько малоизвестных фуллстек-проектов, таких как Urweb и менее известный Django, но в них нет выразительного языка шаблонов, как в Svelte или Vue. Есть ли другие способы сделать автоматический безопасный по типу код конечной точки api?

Похоже, что это проблема единственного источника истины. Существует множество способов решения таких проблем.

Например: Можно генерировать типы из схем (например, из Swagger или самой Prisma). Или даже генерировать схемы из типов, как Typeorm.

Существуют такие инструменты, как swagger-typescript-api и swagger-typescript-codegen и другие, которые могут генерировать код для выполнения запросов и их разбора

Вернуться на верх