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

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 доступен по ссылке.

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

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023