Поделиться через


Что такое TypeSpec?

TypeSpec — это мощный и гибкий язык для разработки API. Это позволяет разработчикам определять API в расширяемом и простом языке. Эта компиляция использует эмиттеры для создания спецификаций API, клиентского кода и серверного кода API. TypeSpec — это проект с открытым исходным кодом , разработанный корпорацией Майкрософт и поддерживаемый сообществом.

Диаграмма , показывающая TypeSpec и созданную спецификацию, представлена до генерации API.

TypeSpec позволяет создавать модульные, повторно используемые компоненты, которые кратки и совместимы с рекомендациями по API. Стандартная библиотека TypeSpec включает в себя средство создания OpenAPI, обеспечивая совместимость с существующими инструментами и рабочими процессами.

В качестве языка с открытым исходным кодом TypeSpec может описать любой API, а не только API Azure. Это универсальность делает его ценным инструментом для разработчиков API, архитекторов и руководителей, которые должны предоставлять высококачественные API в сложной и развивающейся среде.

Преимущества TypeSpec

  • Упрощает разработку API: Предоставляет ясный и лаконичный способ определения API, позволяя разработчикам сосредоточиться на логике и функциональности.
  • ускоряет развертывание: TypeSpec обеспечивает быстрое создание служб и клиентского кода из одного определения API, упрощение развертывания и обеспечение согласованности.
  • гарантирует соответствие требованиям: использует повторно используемые компоненты для соблюдения установленных рекомендаций и стандартов, уменьшения ошибок и несоответствий.
  • улучшение совместимости. Включает в себя эмиттер OpenAPI для обеспечения совместимости с существующими инструментами и рабочими процессами, что облегчает интеграцию.
  • поддерживает расширяемость: гибкая и расширяемая, что позволяет настраивать и расширение определений API для различных сценариев.
  • ускоряет миграцию: средство OpenApiMigration упрощает переход на TypeSpec для ускорения внедрения.

В качестве проекта с открытым исходным кодом, TypeSpec получает преимущества от вкладов и отзывов сообщества, обеспечивая непрерывное улучшение на основе реальных вариантов использования.

Разработка API является сложной задачей

TypeSpec устраняет распространенные проблемы в проектировании, управлении и реализации API:

  • сложные спецификации: написание, проверка и поддержание спецификаций API могут быть обременительными. Даже простой API может привести к сотням строк кода спецификации.
  • многообразие протоколов: каждый протокол имеет собственный формат спецификации без общего языка проектирования между протоколами. Эта фрагментация усложняет процесс разработки.
  • проблемы управления. Без единого языка проектирования управление API становится сложным, что приводит к несоответствиям в реализации и качестве.
  • проблемы масштабируемости: по мере увеличения числа API или версий API требуется больше инженерных команд, что может привести к проблемам координации и неэффективности.

При устранении этих проблем TypeSpec упрощает процесс разработки API, обеспечивает согласованность между различными протоколами и повышает общую эффективность управления и масштабируемости.

Рабочий процесс разработки API TypeSpec

На следующей схеме показаны ключевые этапы разработки API с помощью TypeSpec. Процесс начинается с двух вариантов: создание спецификации API с нуля или миграция из существующей спецификации OpenAPI. После начала API определяется с помощью TypeSpec с помощью модульных и повторно используемых компонентов. Затем компилятор TypeSpec обрабатывает эти определения, используя надежный набор эмиттеров для автоматического создания спецификаций API, клиентского кода и кода заглушки на стороне сервера. Наконец, созданные артефакты интегрируются с существующими цепочками инструментов, обеспечивая гладкий и согласованный рабочий процесс.

Диаграмма, показывающая рабочий процесс TypeSpec.

шаги рабочего процесса

Шаг Описание
старт Начните с написания новой спецификации API с помощью TypeSpec или миграции из существующей спецификации OpenAPI.
определение TypeSpec Определите API с помощью TypeSpec. Повторно используемые компоненты делают API кратким и обеспечивают соответствие рекомендациям.
компилятор TypeSpec Компилятор обрабатывает определения TypeSpec, чтобы подготовить их к созданию кода.
поколение Специализированные эмитенты автоматически создают спецификацию API, клиентский код и серверный код-заглушку.
Интеграция Созданные выходные данные легко интегрируются в существующие цепочки инструментов API.

пути из компилятора TypeSpec:
Компилятор TypeSpec может создавать выходные данные для спецификаций OpenAPI, клиентского кода и кода заглушки на стороне сервера, если это необходимо, одновременно, при этом вы можете запускать каждый из них независимо в соответствии с требованиями вашего проекта.

  1. создание спецификаций OpenAPI
    генератор OpenAPI создает стандартный формат описания API.

  2. Создание кода Client-Side
    Эмиттер клиентского кода создает код для использования в API.

  3. Генерация Server-Side заглушечного кода
    Эмиттер на стороне сервера генерирует код серверного заглушки для инициации реализации API.

Комплексное создание кода с помощью TypeSpec

Создание клиентского кода

TypeSpec упрощает создание клиентского кода путем автоматического создания кода для использования API непосредственно из определений TypeSpec. Этот процесс использует ключевые возможности, такие как стандартные интерфейсы среды выполнения, обеспечивающие непрерывную интеграцию, расширяемость пользовательского кода для настройки выходных данных для конкретных потребностей клиента и комплексного создания, охватывающего весь стек разработки. В результате разработчики могут поддерживать согласованность между приложениями, сокращать усилия по написанию кода вручную и быстро интегрировать API с существующими цепочками инструментов, используя более эффективный и масштабируемый рабочий процесс разработки.

Поддерживаемые языки:

  • .СЕТЬ
  • Ява
  • JavaScript
  • Питон

Создание кода сервера

TypeSpec поддерживает создание кода заглушки на стороне сервера непосредственно из определений TypeSpec. Это упрощает процесс разработки и обеспечивает согласованность между реализациями клиента и сервера.

Поддерживаемые языки:

  • .СЕТЬ
  • JavaScript

Ключевые возможности:

  • Стандартные интерфейсы среды выполнения: стандартный эмитатор ориентирован на создание интерфейсов среды выполнения изначально, обеспечивая гибкость и простую интеграцию с различными стеками среды выполнения.
  • Расширяемость пользовательского кода: средства создания TypeSpec предлагают возможность адаптации пользовательского кода, позволяя разработчикам настраивать его под конкретные нужды, делая его подходящим для различных сред.
  • комплексное создание кода: TypeSpec поддерживает создание кода во всем стеке разработки от клиентов до серверов, включая различные протоколы и типы ресурсов, обеспечивая единый подход к разработке.

Используя возможности создания кода на стороне службы TypeSpec, разработчики могут сократить код вручную, повысить согласованность и повысить общую производительность.

Взаимодействие с инструментальной цепочкой отрасли

TypeSpec легко интегрируется с существующими цепочками инструментов отрасли, обеспечивая взаимодействие и повышая производительность. Создавая спецификации OpenAPI из определений TypeSpec, разработчики могут использовать обширную экосистему средств, предназначенных для OpenAPI, таких как Swagger для документации по API, Postman для тестирования API и управления API Azure для развертывания API. Это включает настройку шлюзов API, создание кода клиента и сервера и проверку данных API. Эта совместимость позволяет командам поддерживать текущие рабочие процессы, используя структурированный и согласованный дизайн API, предоставляемый TypeSpec.

Отличный опыт разработчика

Интеграции для разработчиков включают в себя расширение для Visual Studio Code и Visual Studio. Эти интеграции обеспечивают эффективное и без ошибок кодирование с такими функциями, как автозавершение, выделение синтаксиса, идентификация ошибок во время сборки, переименование символов и форматирование документов. Например, при написании определений TypeSpec в Visual Studio Code расширение обеспечивает автоматическое заполнение и выделение синтаксиса в режиме реального времени, что упрощает запись правильных и согласованных определений API.

анимация скриншота расширения Visual Studio Code для TypeSpec, с автозавершением и выделением синтаксиса.

Кроме того, TypeSpec Playground предлагает интерактивную среду, в которой разработчики могут экспериментировать с синтаксисом TypeSpec и функциями в режиме реального времени. Это веб-средство обеспечивает немедленную обратную связь и проверку, что упрощает изучение и внедрение TypeSpec. Интерактивный практический опыт, предоставляемый TypeSpec Playground, углубляет понимание и знание разработчиков, в конечном счете, что приводит к более согласованным, более качественным конструкциям API. Эти средства совместно улучшают опыт разработчика, упрощая процесс разработки, уменьшая вероятность ошибок и ускоряя кривую обучения для новых участников команды.

снимок экрана: песочница TypeSpec с примером службы HTTP, отправляющей в пользовательский интерфейс Swagger.

Для дальнейшей поддержки разработчиков перехода с существующих API средство OpenApiMigration предоставляет эффективный способ преобразования спецификаций OpenAPI в определения TypeSpec. Это средство миграции упрощает и ускоряет внедрение TypeSpec при сохранении целостности существующей документации API. К трем примерам миграции относятся следующие:

Применение в реальном мире

TypeSpec успешно использовался в различных отраслях для упрощения проектирования и разработки API. Ниже приведены несколько примеров.

  • электронной коммерции: онлайн-розничная платформа использует TypeSpec для проектирования и документирования своего API, что обеспечивает бесшовную интеграцию со сторонними службами и улучшает общий опыт разработчиков.
  • Финансы: компания по финансовым службам приняла TypeSpec, чтобы обеспечить согласованность и соответствие api, сокращая время и усилия, необходимые для управления API.
  • здравоохранения: поставщик медицинских услуг использовал TypeSpec для разработки API управления данными пациентов, обеспечивая согласованность и безопасность данных в своих системах.

Начало работы

Поддержка с открытым исходным кодом

Подробнее

Наслаждайтесь этими видео YouTube для более глубокого погружения в TypeSpec: