郵輪B2C P2 艙房介紹(GetCabinProfile)

API Content

說明

一艘船的艙型範本:艙房介紹面板的頁籤、chips 與每個房型的內容(入住、面積、床型、設備、說明、圖片)。資料是船的、不是產品的,P2 與 P3 都用,要用時帶品牌、船艦代碼呼叫。

使用重點:

文件版本:v1.0(未交付)

規格調整

日期版本調整內容
2026/11/11v1.0(未交付)初版

Request Schema

Body

名稱描述屬性範例
Brand_Code沒帶 Profile_Id 時必填。品牌代碼(P2 航程詳情回的 Brand_Code)StringDCL
Ship_Code沒帶 Profile_Id 時必填。船艦代碼(P2 航程詳情回的 Ship_Code)StringDA
Profile_Type選填。艙型分類代碼;給了只回這一類,不給回全部分類Stringinterior
Profile_Id選填。艙型範本編號;給了只回這一個範本,Brand_Code、Ship_Code、Profile_Type 都不看。P3 卡片的艙房介紹用(選擇艙房 QueryCategory 卡片的 Profile_Id)Int301

JSON 範例

{
  "Brand_Code": "DCL",
  "Ship_Code": "DA",
  "Profile_Type": "interior"
}

Response Schema

回應主體

名稱描述屬性範例
Result_Info結果資訊;前端先看 Is_SuccessObject參考 Result_Info
Result_Data成功時是本端點的資料;不是成功時只放該代碼要帶的資料(見「錯誤回應」),沒有就是 {}Object參考 Result_Data

Result_Info

名稱描述屬性範例
Is_Successtrue=成功;false=看 Result_CodeBooltrue
Result_Code結果代碼(四碼數字);成功是空字串;其他見「錯誤回應」String
Result_Message給客人看的訊息;成功是空字串String

Result_Data

名稱描述屬性範例
Cabin_Type_List艙型分類,一筆=一個分類(面板頁籤);帶 Profile_Type 或 Profile_Id 時最多一筆;這艘船沒有範本為 []List參考 Cabin_Type_List

Cabin_Type_List

名稱描述屬性範例
Profile_Type分類代碼,跟 P2 航程詳情 Cabin_Type_List 的 Profile_Type 對得上Stringinterior
Profile_Type_Name分類名稱(面板頁籤)String內艙房
Profile_List這個分類的房型(chips),已排好,預設第一個;帶 Profile_Id 時只有那一筆List參考 Profile_List

Profile_List

名稱描述屬性範例
Profile_Id房型編號Int301
Profile_Name房型名稱(chip、面板標題)String內艙
Guest_Min入住人數下限Int2
Guest_Max入住人數上限Int4
Profile_Size_Min面積下限(平方公尺);可為 nullDecimal16.1
Profile_Size_Max面積上限(平方公尺);可為 nullDecimal16.1
Bed_Type_List床型名稱List雙人床(可併單人)、沙發床
Facility_List艙房設備名稱List空調設備、電視 / 衛星電視、保險箱
Profile_Info艙房說明;可為 nullString內艙房提供安靜且實用的休息空間。
Image_List面板大圖輪播(封面第一)List參考 圖片物件

圖片物件

Profile_List.Image_List 的每一筆是這個形狀。

名稱描述屬性範例
Image_Url圖片網址Stringhttps://img.example.com/cruise/da-in-01.jpg
Alt_Text圖片替代文字String內艙

JSON 範例

{
  "Result_Info": {
    "Is_Success": true,
    "Result_Code": "",
    "Result_Message": ""
  },
  "Result_Data": {
    "Cabin_Type_List": [
      {
        "Profile_Type": "interior",
        "Profile_Type_Name": "內艙房",
        "Profile_List": [
          {
            "Profile_Id": 301,
            "Profile_Name": "內艙",
            "Guest_Min": 2,
            "Guest_Max": 4,
            "Profile_Size_Min": 16.1,
            "Profile_Size_Max": 16.1,
            "Bed_Type_List": [
              "雙人床(可併單人)",
              "沙發床"
            ],
            "Facility_List": [
              "空調設備",
              "電視 / 衛星電視",
              "保險箱"
            ],
            "Profile_Info": "內艙房提供安靜且實用的休息空間。",
            "Image_List": [
              {
                "Image_Url": "https://img.example.com/cruise/da-in-01.jpg",
                "Alt_Text": "內艙"
              }
            ]
          },
          {
            "Profile_Id": 302,
            "Profile_Name": "豪華礁景內艙",
            "Guest_Min": 2,
            "Guest_Max": 4,
            "Profile_Size_Min": 19.4,
            "Profile_Size_Max": 19.4,
            "Bed_Type_List": [
              "雙人床(可併單人)",
              "兩張單人床"
            ],
            "Facility_List": [
              "空調設備",
              "保險箱"
            ],
            "Profile_Info": null,
            "Image_List": []
          }
        ]
      }
    ]
  }
}

錯誤回應

200 的代碼在 Result_Info.Result_Code、訊息在 Result_Message;400、500 只回一句訊息,代碼在訊息開頭(格式「代碼|訊息」,例「4002|Start_Date 格式錯誤」)。訊息欄除了「重複訂位」與「出發日期已無法訂購,請重新選擇」已定,其他是暫定文字,UIUX 定稿後只改文字、不改代碼;N=第幾間。

HTTPResult_Code中文名稱訊息(給客人看)情境前端動作
2003002查無船艦查無船艦資料品牌或船艦不存在、未啟用由前端判斷(面板與頁面資訊要不要保留,前端決定)
2003003查無艙型範本查無艙房介紹帶的 Profile_Id 範本不存在或已註銷由前端判斷
4004003參數值不在範圍不給客人看(訊息開頭是代碼)Profile_Type 不在允許值前端帶錯值,修正後重打
4004002參數格式錯誤不給客人看(訊息開頭是代碼)Brand_Code/Ship_Code 格式不符前端帶錯值,修正後重打
4004004參數組合錯誤不給客人看(訊息開頭是代碼)沒帶 Profile_Id 又缺 Brand_Code 或 Ship_Code前端帶錯值,修正後重打
5009999系統錯誤9999|系統發生錯誤,請稍後再試系統錯誤(未預期的例外)顯示友善錯誤訊息,可以重試

測試情境/單元測試(開發前規劃)

畫面呼叫

舊版畫面

新版畫面

P2 航程詳情頁點艙房介紹卡片或「艙房類型 ⓘ」時呼叫 → 面板顯示;P3 選擇艙房的艙型頁籤與艙房介紹也呼叫這支。雛形:UIUX 20260922 版 WEB P2-W09、APP P2-A03、P2-A08~A10。

畫面欄位對照(WEB)

面板本身就是這支 API 的整個畫面(雛形 WEB P2-W09)。圖片可點開放大。

畫面欄位對照(APP)

雛形 APP P2-A10。圖片可點開放大。