Первоначально any2api начинался как небольшой исследовательский проект и прототип с открытым исходным кодом. Его цель состояла в том, чтобы автоматически создавать контейнерные API для любого исполняемого файла, в первую очередь ориентируясь на сценарии развертывания и научные программы (моделирование и расчеты в области электронных наук). Мы успешно использовали any2api в этих областях для реализации APIification скриптов Python, скриптов Bash, кулинарных книг Chef, программ Fortran (до сих пор используемых в академических кругах) и т. д. Технически мы предоставили автоматически сгенерированные Dockerized REST API как а также API-интерфейсы RPC для этих исполняемых файлов, чтобы сделать их функциональные возможности пригодными для использования на более высоком уровне. Эти API явно упрощают оркестровку различных типов исполняемых файлов.

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

Что дальше

Следующим шагом для any2api является превращение в открытую экосистему составных блоков API, включая многоразовые оболочки, адаптеры и плагины. Вместо использования базовых сред разработки API для создания определенных видов API с нуля (например, REST или API обмена сообщениями) блоки API упрощают процесс создания разнообразных API. Например, оболочка Python используется для включения в экосистему простого скрипта .py. Затем используется специальный адаптер, такой как адаптер REST, для предоставления функциональных возможностей скрипта через API. Плагины могут дополнительно добавлять дополнительные функции к предоставляемому API, например аутентификацию. Кроме того, можно использовать другой адаптер, чтобы сделать ту же функциональность доступной другим способом, способствуя разнообразию API:

Разнообразие API имеет ключевое значение, поскольку не существует универсального API. В некоторых случаях REST является хорошим выбором, но иногда API для обмена сообщениями, RPC или потоковой передачи работают намного лучше.

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

Подробности и код будут позже!