Это распределение файлов определения API Scaife включает в себя файлы форматированных YAML, JSON и HTML. В большинстве выпусков в каждом формате файла есть один файл для каждого из пяти модулей Scaife.
В выпуске API Scaife API в марте 2021 года мы выпустили только файлы YAML. В этом выпуске все наши модули обновлены для использования формата OpenAPI версии 3. В будущем мы также обновим наши сценарии, которые проводят автоматизированное генерацию кода для JSON и HTML, чтобы работать с OpenAPI версией 3.
Файл YAML определяет API-определение API интегрированной среды (SCAIFE) (1, 2, 3, 5], в формате, который разработчики могут легко использовать для просмотра, изменения и автоматического генерирования кода (например, с помощью инструментов Swagger-Editor и Swagger-Codegen [4]). Файл YAML был почти полностью создан вручную разработчиками SEI. Единственные вещи, которые были созданы автоматически с помощью инструментов Swagger в файле YAML,-это одни из примеров.
Файлы JSON были автоматически сгенерированы путем запуска Swagger-Codegen в файлах swagger.yaml, поскольку некоторые разработчики предпочитают просмотреть API в JSON или иметь инструменты генерации кодов, которые лучше всего подходят с JSON.
В файлах HTML также указывается определение API Scaife в формате, читаемом людьми, которые предпочитают не (или не имеют инструментов) читать файлы YAML. Файлы HTML можно просматривать в любом стандартном веб -браузере. Файлы HTML содержат гиперссылки, а указанный белый документ ниже содержит рекомендации о том, как понять файлы HTML.
Scaife - это архитектура, которая поддерживает классификацию и приоритизацию оповещения о статическом анализе. Он разработан таким образом, чтобы широкий спектр инструментов статического анализа может интегрироваться с системой, используя определение API, которое мы разрабатываем. По состоянию на версии Scaife API 2.0.0, мы добавили вызовы API, чтобы позволить Scaife получать обновления о Code Commits и новых выходах статического анализа с серверов непрерывной интеграции (CI). Мы ожидаем, что API будет интересен организациями, которые разрабатывают и/или исследуют инструменты статического анализа, статический анализ агрегаторов аудита и другие структуры аудита статического анализа. На это определение Scaife API может быть направлено разработчиками, чтобы помочь им оценить усилия по разработке, которые потребуются для изменения инструмента (ы) их организации, чтобы выполнять и реагировать на вызовы Scaife API. Кроме того, это определение API публикуется с целью получения обратной связи от разработчиков и организаций, заинтересованных в реализации API Scaife, чтобы помочь улучшить API Scaife, чтобы стать более легко использования разработчиками для широкого спектра инструментов статического анализа. Система прототипов, которая реализует ее распределена сотрудникам исследовательских проектов.
Архитектура Scaife, показанная на рисунке, включает в себя пять серверов. Система модульная, разработанная таким образом, чтобы каждый модуль мог быть создан различными инструментами/программным обеспечением, в то время как общая система должна поддерживать одинаковую функциональность. Модуль пользовательского интерфейса имеет интерфейс графического интерфейса, который позволяет отображать недостаток статического анализа (FFSA) и хранит локальные проекты. Архитектура Scaife предназначена для обеспечения широкого спектра инструментов FFSA и инструментов предупреждения агрегатора для получения функциональности классификации и приоритетов путем взаимодействия в качестве модуля пользовательского интерфейса с остальной частью системы Scaife. Эти инструменты должны создавать экземпляры API модуля пользовательского интерфейса на другие серверы, чтобы сделать это. Модуль DataHub сохраняет данные (инструмент, оповещение, проект, мета-тестовые мета-метадаты, судебные решения и т. Д.) Из одного или нескольких модулей пользовательского интерфейса и выступают на некоторых мета-альтертах. Статистический модуль создает, запускает и хранит классификаторы и адаптивные эвристические (активное обучение) алгоритмы и автоматизированные гиперпараметрические алгоритмы. Модуль приоритетов сохраняет формулы приоритетов и поля приоритетов, загруженные пользователем. Регистрационный модуль используется для аутентификации и контроля доступа. Он генерирует токены регистрации, а также обеспечивает аутентификацию и базовую авторизацию для других серверов.
Выберите один из пяти модулей, чтобы начать осмотр. Большинство разработчиков инструментов FFSA и разработчиков агрегатора будут наиболее заинтересованы в определении API модуля пользовательского интерфейса. Чтобы позволить их инструменту взаимодействовать с системой Scaife, их инструмент должен создавать API модуля пользовательского интерфейса. Тем не менее, некоторые исследователи/разработчики были сосредоточены на улучшении классификации, активного обучения и автоматической гиперпараметрической оптимизации, вместо этого хотели бы сосредоточиться на API статистического модуля. Они могут разрабатывать новые алгоритмы и модульные включать их в прототип, который мы разработали (если они являются нашим научным сотрудником) или просто модифицируют свои собственные инструменты для создания API статистического модуля, а затем взаимодействовать с системой Scaife с другими модулями, разработанными разными людьми (EG, для модуля пользовательского интерфейса, который они могли бы использовать версию, которую мы разработали для модулярного рабочего модуля со Scaife). Аналогичным образом, некоторые исследователи/разработчики сосредоточены на повышении производительности, безопасности, устойчивости и масштабируемости агрегированного и в конечном итоге ожидаемого хранилища данных. Эти люди захотят сосредоточиться на API модуля DataHub. Мы ожидаем меньшего числа исследователей/разработчиков для реализации модулей регистрации или приоритетов. Тем не менее, их API все еще будут полезны для просмотра, поскольку другие серверы должны взаимодействовать с ними, будь то в клиенте или на роли сервера.
Если вы можете, мы рекомендуем вам использовать редактор Swagger с открытым исходным кодом (и бесплатный) [4] или аналогичный инструмент для просмотра и редактирования API. Откройте файл определения API (.yaml или .json) в этом. Swagger Editor предоставляет удобный способ просмотра, простых тестов и изменять определение API.
В противном случае, просмотрите файл определения HTML API в веб -браузере. Таким образом, к моделям и методам можно получить доступ, следуя гиперссылкам, связанным с каждым ресурсом в разделе определения API Scaife.
Каждый раздел определения API классифицируется на основе исходных и назначения модулей вызовов API. Например, раздел API модуля Resid Models и модуля входа в систему содержит только одну категорию вызовов API в соответствии с меткой UitoreGrivation. Источник (запрос) вызовов API поступает из модуля пользовательского интерфейса, а вызовы API направляются в пункт назначения - модуль регистрации. Модели данных определены в нижней части файла.
Надеюсь, вы не будете только осмотреть API, вы будете использовать его для интеграции своего инструмента или кода в систему Scaife. Вы можете автоматически генерировать код из определения API YAML или JSON любого из модулей Scaife, используя Swagger Codegen [4] или аналогичные инструменты. Это не только имеет преимущество ускорения и автоматизации разработки кода, но также гарантирует, что код осмотрит API Scaife. Если у вас есть инструмент, для которого вы хотите генерировать клиент -код (это означает, что вам нужен код, который позвонит на сервер Scaife, определяемый в определении API этого сервера), такие инструменты, как Swagger Codegen, будут генерировать код на любом из самых разных языков. Вы можете подключить сгенерированный клиент -код в свой собственный код в нужном месте и использовать свои собственные переменные в качестве параметров. Аналогичным образом, вы можете автоматически генерировать код сервера для любого из модулей Scaife, включая заглушки функции контроллера для каждого из вызовов API на этот сервер, для которого вы затем установите внутренний код.
Специальные примечания для рецензентов API: