FrontendConf

Типобезопасный бэкенд: tRPC с поддержкой REST

Технологии

Доклад принят в программу конференции

Целевая аудитория

Фронтенд и фулстек разработчики

Тезисы

Поговорим о подходе с использованием инструмента TRPC https://trpc.io/, почему данный подход удобен, что такое End-to-end typesafe API. И как сделать свой собственный пакет который позволит шарить логику в рамках проекта. Дополнительно добавим возможность работы по классическому REST для необходимых маршрутов. Так же посмотрим как работает авторизация, и можно ли это все покрыть тестами.

Поговорим о проблеме
— Использование в основном только GET
— Дублирование кода (boilerplate-код)
— Консистентное обновление
— Сложность типизации REST API

Поговорим о решении
— Единая кодовая база
— Автоматическая типизация
— Гибкость подхода
— Принудительная валидация
— Упростить написание тестов

Посмотрим на более продвинутые возможности
— Абстракция над провайдером данных
— Базовая авторизация с middleware и печеньками
— И что там с тестами пакета?
— Посмотрим на клиент

Поговорим об "Ограничения и подводные камни"
— Не подходит для публичных API
— Сложности с кэшированием
— Привязка к TypeScript и Zod

Вместо заключения и выводы
— Упрощаем жизнь разработчикам
— Меньше boilerplate-кода
— tRPC — это не замена REST
— Пишите свои пакеты
— Для каждого решения есть свой инструмент

Кузьмин Алексей Олегович

Самовыдвиженец (NC)

14 лет в ИТ. Начинал с системного администрирования, поработал в стартапе. В портфеле проектов: Авито, World Class, Novakid, Inferit. Выступал на внутренних ивентах компании, на митапах менеджеров и тимлидов.

Отвлекается от задачек с помощью книг, называет себя запойным читателем. И, конечно, плейстейшн — как без него?

Видео

Мнение Программного комитета о докладе

Фото куратора

Алексей Авдеев

Устали от рассинхрона типов между фронтендом и бэкендом? Алексей покажет, как с помощью tRPC создать универсальный API-пакет и забыть об этой боли. Практический доклад для фулстек- и фронтенд-разработчиков, которые хотят ускорить разработку и повысить её надёжность.