<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>API on Dev TLDRLSS</title>
        <link>https://dev.tldrlss.com/zh-cn/tags/api/</link>
        <description>Recent content in API on Dev TLDRLSS</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 02 Aug 2026 15:08:41 +0800</lastBuildDate><atom:link href="https://dev.tldrlss.com/zh-cn/tags/api/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Manifest、Report、Finding 差在哪？软件架构中的数据层级名词是什么意思？为什么 API 设计要这样分层？Metadata、Artifact 与 Payload 又有什么不同！</title>
        <link>https://dev.tldrlss.com/zh-cn/article/2026/08/whats-manifest-report-finding-evidence-metadata-artifact-payload-data-model-hierarchy/</link>
        <pubDate>Sun, 02 Aug 2026 15:08:41 +0800</pubDate>
        
        <guid>https://dev.tldrlss.com/zh-cn/article/2026/08/whats-manifest-report-finding-evidence-metadata-artifact-payload-data-model-hierarchy/</guid>
        <description>&lt;img src="https://dev.tldrlss.com/global-assets/article/2026/08/whats-manifest-report-finding-evidence-metadata-artifact-payload-cover.jpg" alt="Featured image of post Manifest、Report、Finding 差在哪？软件架构中的数据层级名词是什么意思？为什么 API 设计要这样分层？Metadata、Artifact 与 Payload 又有什么不同！" /&gt;&lt;p&gt;你有没有遇到过在看各种 &lt;code&gt;API&lt;/code&gt; 文档、资安扫描工具或是 &lt;code&gt;CI/CD&lt;/code&gt; 流程时，常常看到 &lt;code&gt;Manifest&lt;/code&gt;、&lt;code&gt;Report&lt;/code&gt;、&lt;code&gt;Finding&lt;/code&gt;、&lt;code&gt;Evidence&lt;/code&gt; 这些名词？它们其实不是哪个特定编程语言的语法，而是业界约定俗成的 &lt;strong&gt;数据层级代名词&lt;/strong&gt;。到底这些名词代表什么意思？&lt;/p&gt;
&lt;h2 id=&#34;核心概念从健康检查理解数据阶层&#34;&gt;核心概念：从“健康检查”理解数据阶层
&lt;/h2&gt;&lt;p&gt;其实我们可以把它们想象成去医院做 &lt;strong&gt;健康检查&lt;/strong&gt; 的流程，这四个名词刚好对应了从高层级到最底层的数据阶层。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;名词&lt;/th&gt;
          &lt;th&gt;健检比喻&lt;/th&gt;
          &lt;th&gt;软件架构对应说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Manifest&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;健检报到单&lt;/td&gt;
          &lt;td&gt;宣告有哪些项目要执行、版本与环境配置，属于描述性数据。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Report&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;完整健检报告书&lt;/td&gt;
          &lt;td&gt;执行完成后的完整总结，包含整体状态与审计结果。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Finding&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;报告中的红字注解&lt;/td&gt;
          &lt;td&gt;报告中被圈出来的具体发现，例如“发现高血压”或资安漏洞。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Evidence&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;血压计数据纸条&lt;/td&gt;
          &lt;td&gt;支持发现的原始客观证据，例如日志记录或数据测量值。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;这些名词不是编程语言的保留字，而是业界约定俗成的共同数据模型。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我们可以使用 &lt;code&gt;Mermaid&lt;/code&gt; 图表来呈现这四者在数据结构上的上下游与包含关系：&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  graph TD
    A[&amp;#34;Manifest (执行清单/元数据)&amp;#34;] --&amp;gt;|定义范畴与执行| B[&amp;#34;Report (完整总结报告)&amp;#34;]
    B --&amp;gt;|包含多笔| C[&amp;#34;Finding (具体发现/观察)&amp;#34;]
    C --&amp;gt;|关联多笔| D[&amp;#34;Evidence (客观原始证据)&amp;#34;]
&lt;/pre&gt;

&lt;!--adsense--&gt;
&lt;h2 id=&#34;为什么要这样分层设计数据层级的三大优势&#34;&gt;为什么要这样分层设计？数据层级的三大优势
&lt;/h2&gt;&lt;p&gt;那为什么系统要把数据拆得这么细，不全部塞进一个大 &lt;code&gt;JSON&lt;/code&gt; 就好呢？其实这样的设计有几个极大的好处：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;优秀的 API 架构设计，能让前端界面加载更顺畅、数据更具可信度与扩充性。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;优势&lt;/th&gt;
          &lt;th&gt;说明&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;职责分离&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;前端界面可以先加载 &lt;code&gt;Finding&lt;/code&gt; 让用户看概况，有需要深究时才调用庞大的 &lt;code&gt;Evidence&lt;/code&gt;。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;高可信度&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;提供 &lt;code&gt;Evidence&lt;/code&gt; 能证明 &lt;code&gt;Finding&lt;/code&gt; 不是误报，显著增加系统的可审计性。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;弹性扩充性&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;一笔 &lt;code&gt;Finding&lt;/code&gt; 可以弹性关联多笔 &lt;code&gt;Evidence&lt;/code&gt;，不会破坏原有数据格式。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;其他常见名词补充metadataartifact-与-payload&#34;&gt;其他常见名词补充：Metadata、Artifact 与 Payload
&lt;/h2&gt;&lt;p&gt;除了上述四个核心阶层，你在设计 &lt;code&gt;API&lt;/code&gt;、构建流水线或定义传输格式时，一定还会常看到这三个名词 &lt;code&gt;Metadata&lt;/code&gt;、&lt;code&gt;Artifact&lt;/code&gt; 与 &lt;code&gt;Payload&lt;/code&gt;，它们分别扮演着不同的角色：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;名词&lt;/th&gt;
          &lt;th&gt;核心定义&lt;/th&gt;
          &lt;th&gt;生活比喻&lt;/th&gt;
          &lt;th&gt;软件架构实际应用范例&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Metadata&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;描述数据本身的数据（元数据）&lt;/td&gt;
          &lt;td&gt;包裹外面的寄件贴纸、相片信息&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;HTTP Header&lt;/code&gt;、请求时间戳记 &lt;code&gt;timestamp&lt;/code&gt;、分页信息 &lt;code&gt;page&lt;/code&gt;。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Artifact&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;流程执行后产生的实体产出物&lt;/td&gt;
          &lt;td&gt;工厂生产的汽车、健检光盘&lt;/td&gt;
          &lt;td&gt;打包好的 &lt;code&gt;.apk&lt;/code&gt; 档、&lt;code&gt;Docker Image&lt;/code&gt;、审计 &lt;code&gt;PDF&lt;/code&gt; 报告。&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;Payload&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;传输中真正要传递的核心业务数据&lt;/td&gt;
          &lt;td&gt;包裹盒子里面真正装的智能手机&lt;/td&gt;
          &lt;td&gt;&lt;code&gt;HTTP POST Body&lt;/code&gt; 中的 &lt;code&gt;JSON&lt;/code&gt; 业务主体内容。&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Payload&lt;/code&gt; &lt;strong&gt;就像邮件包裹里的物品&lt;/strong&gt;，而 &lt;code&gt;Metadata&lt;/code&gt; &lt;strong&gt;则是贴在包裹外面的寄件标签&lt;/strong&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;为了让大家更清楚这三者的协同运作方式，我们可以用一个典型的 &lt;code&gt;API Request&lt;/code&gt; 数据结构来观察：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;metadata&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;v1.2.0&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;timestamp&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;2026-08-02T15:08:41Z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;request_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;req-98765&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;payload&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;report_id&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;REP-2026-001&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;COMPLETED&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;artifact_url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://example.com/artifacts/build-report.pdf&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在这个 &lt;code&gt;JSON&lt;/code&gt; 范例中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;metadata&lt;/code&gt; 提供了传输与环境的上下文（版本、时间戳记、请求 ID）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;payload&lt;/code&gt; 包含了真正传输的业务逻辑数据（报告 ID、状态）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;artifact_url&lt;/code&gt; 则指向了这次构建任务真正产生的实体文件（&lt;code&gt;Artifact&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;!--adsense--&gt;
&lt;h2 id=&#34;共同词汇的力量跨系统沟通的桥梁&#34;&gt;共同词汇的力量：跨系统沟通的桥梁
&lt;/h2&gt;&lt;p&gt;当不同工具、不同团队都采用这套相近的数据模型（例如 &lt;code&gt;Report&lt;/code&gt; -&amp;gt; &lt;code&gt;Findings&lt;/code&gt; -&amp;gt; &lt;code&gt;Evidence&lt;/code&gt;），彼此之间的沟通成本就会大幅降低。&lt;/p&gt;
&lt;p&gt;想象一下，你的 &lt;code&gt;CI/CD&lt;/code&gt; 工具产生的 &lt;code&gt;Report&lt;/code&gt;，可以直接无痛传输给资安系统做分析，这就是共同词汇带来的整合威力。&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  sequenceDiagram
    autonumber
    actor CI as CI/CD Pipeline
    participant Scanner as 资安扫描器
    participant Dashboard as 管理仪表板
    
    CI-&amp;gt;&amp;gt;Scanner: 提供 Manifest 执行扫描
    Scanner-&amp;gt;&amp;gt;Scanner: 产生 Report 与 Findings
    Scanner-&amp;gt;&amp;gt;Dashboard: 传送结构化 Payload (Finding + Evidence)
    Dashboard--&amp;gt;&amp;gt;CI: 显示审计结果
&lt;/pre&gt;

&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;其实，这些名词的出发点都是为了解决大型系统间 &lt;strong&gt;数据沟通与结构化&lt;/strong&gt; 的问题。&lt;/p&gt;
&lt;p&gt;在串接系统或设计 &lt;code&gt;API&lt;/code&gt; 时，可以试着把这些概念融入你的 &lt;code&gt;Payload&lt;/code&gt; 结构中，让你的系统设计更加专业且具有扩充性！&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
