sbom-service API完全指南:15个核心接口详解与使用示例

📅 2026/7/1 20:07:24
sbom-service API完全指南:15个核心接口详解与使用示例
sbom-service API完全指南15个核心接口详解与使用示例【免费下载链接】sbom-serviceA service named sbom-service, designed for generate、consume sbom.项目地址: https://gitcode.com/openeuler/sbom-service前往项目官网免费下载https://ar.openeuler.org/ar/欢迎来到sbom-service的终极API指南 sbom-service是一个强大的软件物料清单服务专为生成和消费SBOM而设计。无论您是软件供应链安全的新手还是经验丰富的开发者这份完整指南将帮助您快速掌握15个核心接口的使用方法让您轻松管理软件物料清单、追踪漏洞和许可证合规性。在本文中我们将深入探讨sbom-service的核心功能提供实用的API调用示例并分享最佳实践。 sbom-service系统架构概览在深入了解具体API之前让我们先看看sbom-service的整体架构sbom-service采用模块化设计支持多种SBOM标准和格式提供完整的软件供应链安全分析能力。系统架构清晰分离了数据处理、存储和API服务层确保高效可靠的服务交付。 核心API接口分类sbom-service的API接口主要分为五大类别每类都有特定的用途和功能1. 制品管理接口2. 软件包查询接口3. 漏洞分析接口4. 许可证合规接口5. SBOM导出接口 1. 制品管理接口1.1 新增制品元数据接口接口路径POST /sbom-api/addProduct这是管理制品的基础接口用于向系统添加新的制品信息。目前主要支持OpenHarmony社区的制品注册。请求参数productType: 制品类型目前仅支持OpenHarmonyproductName: 制品名称必需attribute: 制品元数据包含版本和组件信息使用示例{ productType: OpenHarmony, productName: openharmony_weekly_dayu200_OpenHarmony_4.0.1.2_20221220020001, attribute: { version: { value: OpenHarmony_4.0.1.2, label: OpenHarmony_4.0.1.2 }, component: { value: dayu200, label: dayu200 } } }常见错误处理制品已存在时返回错误无效的制品类型会拒绝操作元数据格式不正确会返回具体错误信息1.2 查询制品配置接口接口路径GET /sbom-api/queryProductConfig/{productName}获取特定制品的详细配置信息包括元数据和系统设置。 2. 软件包查询接口2.1 查询制品软件包列表接口接口路径POST /sbom-api/querySbomPackages这是最常用的接口之一支持多种过滤条件查询制品中的软件包信息。核心参数productName: 制品名称必需packageName: 软件包名支持模糊查询isExactly: 是否精确匹配vulSeverity: 漏洞严重级别过滤noLicense: 是否无许可证multiLicense: 是否多许可证isLegalLicense: 许可证是否合规licenseId: 按许可证ID过滤page/size: 分页参数漏洞级别说明| 级别 | 说明 | |------|------| | NA | 无漏洞 | | UNKNOWN | 未知漏洞 | | NONE | 无风险漏洞 | | LOW | 低危漏洞 | | MEDIUM | 中危漏洞 | | HIGH | 高危漏洞 | | CRITICAL | 致命漏洞 |返回数据结构{ content: [ { id: 软件包UUID, name: 软件包名, version: 软件包版本, licenses: [ { licenseId: SPDX许可证ID, licenseName: 许可证名称, licenseUrl: 许可证官网地址, legal: true/false } ], copyright: 版权信息, supplier: 供应商信息, statistics: { criticalVulCount: 致命漏洞数量, highVulCount: 高危漏洞数量, mediumVulCount: 中危漏洞数量, lowVulCount: 低危漏洞数量, noneVulCount: 无风险漏洞数量, unknownVulCount: 未知漏洞数量 } } ], last: false, totalPages: 1122, totalElements: 16818, size: 15, number: 0, first: true, numberOfElements: 15, empty: false }2.2 查询软件包正向依赖项接口接口路径GET /sbom-api/queryPackageDependencies/{packageId}获取特定软件包的所有依赖关系帮助理解软件包间的依赖网络。2.3 查询软件包上游社区及Patch信息接口接口路径GET /sbom-api/queryPackageUpstream/{packageId}追踪软件包的来源社区和补丁信息确保供应链透明度。 3. 漏洞分析接口3.1 查询制品漏洞列表接口接口路径GET /sbom-api/queryVulnerability/{productName}获取制品的漏洞信息支持按严重级别和软件包过滤。参数说明severity: 漏洞严重级别packageId: 软件包UUIDvulId: 漏洞编号page/size: 分页参数返回示例{ vulId: CVE-2022-00001-test, scoringSystem: CVSS2, score: 9.8, vector: (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), severity: HIGH, references: [ { first: ADVISORY, second: http://web.nvd.nist.gov/view/vuln/detail?vulnIdCVE-2022-00001-test } ] }3.2 查询软件包漏洞统计数据接口接口路径GET /sbom-api/queryPackageVulStatistics/{packageId}获取单个软件包的漏洞统计概览快速评估风险等级。3.3 查询软件包漏洞详情接口接口路径GET /sbom-api/queryPackageVulnerability/{packageId}查看特定软件包的详细漏洞信息包括修复建议和影响范围。3.4 查询制品漏洞列表接口接口路径GET /sbom-api/queryProductVulnerability/{productName}获取整个制品的漏洞汇总视图支持分页和过滤。3.5 漏洞影响范围查询接口接口路径GET /sbom-api/queryVulImpact/{vulId}分析特定漏洞影响的软件包范围评估修复优先级。 4. 许可证合规接口4.1 查询制品license列表接口接口路径GET /sbom-api/queryProductLicenses/{productName}获取制品中所有许可证的分布情况支持合规性分析。4.2 查询软件包license、copyright详情接口接口路径GET /sbom-api/queryPackageLicense/{packageId}查看软件包的完整许可证信息和版权声明。 5. 数据统计与导出接口5.1 查询制品SBOM看板统计数据接口接口路径GET /sbom-api/queryProductStatistics/{productName}获取制品的综合统计信息包括软件包数量、漏洞分布、许可证合规情况等。返回字段详解packageCount: 软件总数vulCount: 漏洞总数licenseCount: 许可证种类数按严重级别统计的漏洞数量按合规性统计的软件包数量licenseDistribution: 许可证分布图5.2 查询制品漏洞趋势接口接口路径GET /sbom-api/queryProductVulTrend/{productName}追踪制品漏洞随时间的变化趋势支持时间范围查询。时间参数startTimestamp: 起始时间戳毫秒endTimestamp: 结束时间戳毫秒5.3 导出制品所有软件包SBOM接口接口路径POST /sbom-api/exportAllPackageSbom导出整个制品的完整SBOM文档支持多种格式。参数配置productName: 制品名称spec: SBOM标准目前支持cyclonedxspecVersion: 标准版本如1.4format: 导出格式json/xml5.4 导出软件包SBOM接口接口路径POST /sbom-api/exportPackageSbom导出单个软件包的SBOM文档便于独立分析和共享。5.5 反向追溯链查询接口接口路径GET /sbom-api/queryReverseDependencies/{packageId}查询哪些软件包依赖了指定的软件包用于影响分析。5.6 查询制品发布结果接口接口路径GET /sbom-api/queryProductPublishResult/{productName}检查制品发布状态和结果确保SBOM生成过程完成。 实用API调用示例场景1快速获取高危漏洞软件包# 查询制品中包含高危漏洞的软件包 POST /sbom-api/querySbomPackages?productNameopenEuler-22.03-LTS-everything-x86_64-dvd.isovulSeverityHIGHpage0size10场景2检查许可证合规性# 查询许可证不合规的软件包 POST /sbom-api/querySbomPackages?productNameopenEuler-22.03-LTS-everything-x86_64-dvd.isoisLegalLicensefalsepage0size20场景3导出特定格式的SBOM# 导出CycloneDX格式的完整制品SBOM POST /sbom-api/exportAllPackageSbom?productNameharmonyos/os/3.1-Release/standard_hi3516.tar.gzspeccyclonedxspecVersion1.4formatjson场景4获取制品的健康度报告# 获取制品统计看板 GET /sbom-api/queryProductStatistics/openEuler-22.03-LTS-everything-x86_64-dvd.iso # 获取漏洞趋势数据 GET /sbom-api/queryProductVulTrend/openEuler-22.03-LTS-everything-x86_64-dvd.iso 最佳实践与注意事项1. 分页查询优化对于大型制品始终使用分页参数避免一次性加载过多数据POST /sbom-api/querySbomPackages?productName大型制品page0size502. 组合过滤条件利用多个过滤条件精确查询POST /sbom-api/querySbomPackages?productName制品名packageNamehiveisExactlytruevulSeverityHIGH3. 错误处理策略检查HTTP状态码200表示成功500表示服务器错误验证参数格式确保所有必需参数正确传递处理分页边界注意last字段判断是否最后一页4. 性能考虑对于频繁查询考虑缓存结果使用合适的页面大小平衡性能和用户体验定期清理不需要的历史数据5. 安全建议在生产环境中使用HTTPS实施适当的API访问控制定期审计API使用日志 sbom-service数据模型sbom-service的数据模型设计考虑了软件供应链的复杂性支持多层次的关系追踪。从制品到软件包再到组件和依赖关系每个层级都有完整的元数据和关联信息。 导入SBOM作业流程sbom-service支持多种SBOM导入方式以下是典型的导入流程图1SBOM导入初始化阶段图2SBOM数据处理阶段图3SBOM分析完成阶段 总结sbom-service提供了完整的API生态系统覆盖了软件物料清单管理的各个方面。通过这15个核心接口您可以全面管理制品信息从注册到查询一站式管理深度分析软件包支持多种过滤和统计方式实时监控安全风险漏洞追踪和合规检查灵活导出SBOM文档支持主流标准和格式可视化数据洞察看板统计和趋势分析无论您是进行软件供应链安全审计、许可证合规检查还是需要生成标准化的SBOM报告sbom-service都能提供强大的API支持。建议从查询制品软件包列表接口开始逐步探索其他功能构建适合您需求的软件供应链安全管理流程。关键文件路径参考API文档目录doc/api/数据模型定义doc/assert/data-model-structure.png系统架构图doc/assert/global-architecture.png导入作业流程doc/assert/import-sbom-job-*.png开始您的sbom-service API之旅打造更安全、更透明的软件供应链✨【免费下载链接】sbom-serviceA service named sbom-service, designed for generate、consume sbom.项目地址: https://gitcode.com/openeuler/sbom-service创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考