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审稿人的特别注释: