Scaife API定義文件的這種分佈包括YAML,JSON和HTML格式化文件。在大多數版本中,每個文件格式都有一個文件格式,用於五個Scaife模塊中的每個文件。
在2021年3月的Scaife API版本中,我們僅發布了YAML文件。該版本的所有模塊已更新為使用OpenAPI版本3格式。將來,我們還將更新將自動代碼生成的腳本更新為JSON和HTML,以便使用OpenAPI版本3。
YAML文件指定源代碼分析集成框架環境(SCAIFE)API定義[1,2,3,5],以開發人員可以輕鬆地使用來查看,修改和自動生成代碼的格式(例如,使用Swagger-editor和Swagger-Codegen工具[4])。 YAML文件幾乎完全由SEI開發人員手動創建。 YAML文件中的Swagger工具自動生成的唯一事情是其中一些示例。
JSON文件是通過在Swagger.YAML文件上運行Swagger-Codegen自動生成的,因為有些開發人員喜歡在JSON中查看API或具有與JSON最有效的代碼生成工具。
HTML文件還指定了Scaife API定義,該定義的格式是由不願(或沒有工具)讀取YAML文件的人可讀取的。可以在任何標準的Web瀏覽器中查看HTML文件。 HTML文件包含超鏈接,下面引用的白皮書提供了有關如何理解HTML文件的指南。
Scaife是一個支持靜態分析警報分類和優先級的體系結構。它的設計是如此,因此可以使用我們正在開發的API定義與系統集成的各種靜態分析工具。與Scaife API版本2.0.0一樣,我們添加了API調用以使Scaife接收有關代碼提交和連續集成(CI)服務器的新靜態分析輸出的更新。我們預計,開發和/或研究靜態分析工具,靜態分析警報審計聚合器以及其他靜態分析警報審核框架的組織將對API感興趣。開發人員可以引用此Scaife API定義,以幫助他們估算開發工作,以修改組織的工具以進行和響應Scaife API調用所需的開發工作。此外,該API定義正在發布,其目的是從有興趣實施SCAIFE API的開發人員和組織中產生反饋,以幫助改善Scaife API,以便開發人員更容易使用各種靜態分析工具。實現其已分發給研究項目合作者的原型系統。
圖中顯示的Scaife架構包括五台服務器。該系統是模塊化的,設計,因此可以通過不同的工具/軟件對每個模塊進行實例化,而整個系統應保持相同的功能。 UI模塊具有GUI前端,可顯示發現錯靜態分析(FFSA)警報,並存儲本地項目。 SCAIFE架構旨在啟用各種FFSA工具和警報聚合器工具,以通過與SCAIFE系統的其餘部分進行交互作為UI模塊來獲得分類和優先級功能。這些工具必須對其他服務器進行實例化UI模塊API調用,以便這樣做。 DataHub模塊將從一個或多個UI模塊中存儲數據(工具,警報,項目,測試套件元數據,裁判等),並裁定一些元數據。統計模塊創建,運行和存儲分類器以及自適應啟發式(主動學習)算法和自動化的超參數算法。優先級模塊存儲優先級公式和用戶使用的優先級字段。註冊模塊用於身份驗證和訪問控制。它生成註冊令牌,此外,它為其他服務器提供了身份驗證和基本授權。
選擇要開始檢查的五個模塊之一:大多數FFSA工具和警報聚合工具開發人員將對UI模塊的API定義最感興趣。為了使其工具與Scaife系統進行交互,其工具需要實例化UI模塊的API。但是,一些研究人員/開發人員致力於改善分類,積極學習和自動化的超參數優化,而是希望專注於統計模塊的API。他們可以開發新的算法並將它們模塊化納入我們開發的原型(如果它們是我們的研究合作者),或者簡單地修改自己的工具以實例化統計模塊的API,然後與Scaife系統與其他模塊進行交互,而不是由不同的人開發的其他模塊(例如,對於UI模塊,他們可以使用Scale的版本來使用Scaife scaife)。同樣,一些研究人員/開發人員專注於提高總體數據存儲的綜合性,最終預期的綜合性能,安全性,韌性和可擴展性。這些人將希望專注於DataHub模塊的API。我們希望少數研究人員/開發人員能夠實施註冊或優先級模塊。但是,由於其他服務器需要在客戶端或服務器角色中與它們進行交互,因此它們的API仍然很有用。
如果可以的話,我們鼓勵您使用開源(和免費的)Swagger編輯器[4]或類似的API查看和編輯工具。打開一個API定義文件(.yaml或.json)。 Swagger編輯器提供了一種用戶友好的方式來查看,進行簡單測試和修改API定義。
否則,在Web瀏覽器中查看HTML API定義文件。這樣,可以通過在下面的“ Scaife API定義”部分中遵循與每個資源關聯的超鏈接來訪問模型和方法。
每個API定義部分都是根據API調用的源和目標模塊進行分類的。例如,快速模型註冊和登錄模塊API定義部分僅包含標籤UitoreGistration下的一個類別的API調用。 API調用的源(請求)來自UI模塊,API調用轉發到目的地 - 註冊模塊。數據模型在文件的底部定義。
希望您不僅檢查API,還可以使用它將工具或代碼集成到Scaife系統中。您可以使用Swagger Codegen [4]或類似的工具從任何SCAIFE模塊的YAML或JSON API定義自動生成代碼。這不僅具有加速和自動化代碼開發的好處,而且還可以確保代碼實例化Scaife API。如果您有一個工具要生成客戶端代碼(含義,您想要的代碼將調用該服務器API定義中定義的Scaife服務器),那麼Swagger Codegen之類的工具將以各種語言中的任何一種來生成代碼。您可以將生成的客戶端代碼插入正確的位置,並將自己的變量用作參數。同樣,您可以自動為任何SCAIFE模塊生成服務器代碼,包括每個API調用到該服務器的控制器功能存根,然後您將充實內部代碼。
API審稿人的特別註釋: