Intro
00:00:00Типобезопасный сквозной RPC, настраиваемый за считанные минуты Определите процедуру, импортировав операционную систему из OPC/server, проверив вводимые данные с помощью Zod (или любой библиотеки схем) и поместив бизнес-логику в обработчик. Сопоставьте процедуры с обычным маршрутизатором и предоставьте им доступ через Next.js Маршрут API с использованием нового обработчика RPC с префиксом, подобным /rpc. Создайте RPC-ссылку на сервер, создайте экземпляр типизированного OPC-клиента с маршрутизатора и вызывайте процедуры с автозаполнением и выводимыми типами возвращаемых данных. Создайте промежуточное программное обеспечение с шаблоном конструктора для общедоступных и защищенных процедур, отражая опыт разработчиков TRPC.
Встроенный OpenAPI: Спецификации, документы и аутентификация, которые просто работают OpenAPI первоклассен — OPC генерирует спецификации на основе процедур и интегрируется со Scala для создания интерактивных справочных документов, которые вы можете просматривать с помощью /api. Конечные точки отображают обязательные поля, фрагменты кода на нескольких языках и встроенный клиент API для отправки тестовых запросов. Поддерживается сквозная аутентификация, включая токены на предъявителя и другие распространенные схемы. Используйте route() для объявления метода и пути (а также сводки и тегов), определения схем вывода для автоматической генерации спецификаций и использования интеллектуального принуждения Zod для принятия входных данных без перезаписи схем. Для этого TRPC использовал неподдерживаемый плагин, в то время как OPC поставляет его первой стороной (существует новый плагин trpc-to-openapi, но он встроен в OPC).
Первоклассная обработка типизированных ошибок от сервера к клиенту Генерируйте структурированные ошибки с помощью класса OPCError, используя типизированные коды, такие как not found или bad request, или предопределяйте ошибки с помощью .errors с проверенными схемами данных. В обработчиках генерируйте ошибки.NotFound с ожидаемой полезной нагрузкой и обеспечивайте полную безопасность типов. На клиенте завершите вызовы с помощью safe(), чтобы получить кортеж, содержащий данные или типизированную ошибку, затем используйте IsDefined или сужение кода с автозаполнением для ветвления в определенных случаях. Данные об ошибках остаются строго типизированными в нисходящем потоке (например, повторяются после в виде числа), что делает обработку ошибок между сервером и клиентом предсказуемой и явной.
API-интерфейсы, основанные на контракте, и экосистема, включающая в себя батареи Примените дизайн, основанный на контракте, объявив входные данные, выходные данные и типы ошибок с помощью oc из OPC/contract, оставив реализацию в стороне. Реализуйте каждый контракт с помощью OPC/server implementation(), чтобы контракт обеспечивал проверку ввода и выводил ошибки ввода текста немедленно, если обработчик нарушает его. Подключайте реализации к маршрутизатору и используйте их, как и любую другую процедуру. Помимо этого, OPC предлагает встроенные плагины для CORS, пакетной обработки, повторных попыток и ограничения скорости, а также поддержку запросов TanStack в React, Vue, Svelte и Solid (и может быть подключен к Vue Pina Clada).