<?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/tags/api/</link>
        <description>Recent content in API on Dev TLDRLSS</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sun, 02 Aug 2026 15:08:41 +0800</lastBuildDate><atom:link href="https://dev.tldrlss.com/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/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/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>
