Рубріки: Новости

Smithy: простой язык Amazon для определения сервисов и SDK

Богдан Мирченко

Smithy — это не зависящий от протокола язык определения интерфейса и набор инструментов для создания клиентов, серверов и документации для нескольких языков программирования. Модели Smithy определяют сервис как набор ресурсов, операций и форм. 

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

  • Основа на языке определения интерфейсов, который используется в Amazon и AWS;
  • Все метаданные, свойственные AWS, в Smithy реализованы в виде отдельных пакетов;
  • Smithy предназначен для работы генерации кода для нескольких языков программирования. Модели Smithy полностью нормализована, что дает всем сгенерированным типа явное имя и упрощает просмотр, проверку и сравнение моделей.
  • Не зависит от протокола. Это означает, что модель является абстракцией, которая определяет правила и семантику взаимодействия клиента и сервера;
  • Расширяемая метамодель Smithy может развиваться и собирать больше информации об услугах. Черты используются для расширения модели и добавления возможностей, которые не являются частью основной спецификации;
  • Настраиваемые стандарты API обеспечивают автоматическое соответствие API ожиданиям клиентов. Правила проверки могут быть общими и применяться ко всем API в компании;
  • Модели Smithy определяются ресурсами и операциями. Определение сервисов с ресурсами позволяет улучшить API и предоставляет обширную информацию для преобразования моделей;
  • Упрощает разработчикам поддержку SDK AWS с открытым исходным кодом.

Создание моделей с помощью Smithy

  • Чтобы начать работу, нужно установить плагин Smithy Gradle Plugin. Он может создавать артефакты из моделей Smithy, генерировать JAR-файлы, содержащие модели Smithy, найденные в проектах Java и генерировать JAR-файлы, содержащие отфильтрованные проекции моделей Smithy. Создайте файл smithy-build.json:
{
    "version": "1.0"
}
  • Затем активируйте Smithy Gradle Plugin в файле build.gradle.kts и запустите gradlebuild:
plugins {
   id("software.amazon.smithy").version("0.5.3")
}
  • Создайте модель mode/main.smithy:
namespace com.example

service ExampleService {
    version: "2020-05-27"
}

Вот и все! Больше примеров по созданию моделей можно посмотреть здесь. Библиотека распространяется под лицензией Apache 2.0. Репозиторий GitHub доступен по ссылке.

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024