簡體   English   中英

Mule 設計中心定義 400 響應但嘗試不返回相同的響應

[英]Mule design centre defining 400 response but trying it does not return same response

我正在 Mule Anypoint 平台設計中心的 RAML 中定義我的 api 合同。 這是簡單的合同:

    #%RAML 1.0
title: test_experiment
version: v1
mediaType: application/json

/test:
  put:
    headers:
      trackingId:
        type: string
        description: "Track each request"
        minLength: 3
    responses:
      200:
        body:
          application/json:
            example:
              {
                "msg": "successfully done"
              }

      400:
        body:
          application/json:
            example:
              {
                "msg": "something bad was submitted",
                "id" : "001"
              }

接下來,我嘗試在“文檔”選項卡中“測試它”,當我故意不輸入trackingId時,我確實得到了 400 響應代碼,但響應負載不同。

我已將響應負載定義為:(預期負載)

 {
     "msg": "something bad was submitted",
     "id" : "001"
 }

然而,設計中心“試試看”中的有效負載響應是:

{
  "code": "REQUEST_VALIDATION_ERROR",
  "message": "Error validating header: expected minLength: 3, actual: 0"
}

那么為什么 400 響應沒有像我在 raml 中定義的那樣返回? 在此處輸入圖像描述

Edit1:此行為全部在設計中心觀察到,我沒有提供實現然后對其進行測試,我正在使用設計中心文檔和“嘗試”功能,如下圖所示: 在此處輸入圖像描述

因為它是一個模擬,而不是一個真正的實現。 當您在設計中心進行測試時,您使用的是模擬響應的Mocking 服務 您收到的錯誤是因為請求與規范不匹配。 Mocking 服務通常只使用它在 API RAML 中找到的第一個狀態代碼。 如果您希望它返回您的錯誤,請使用行為 header(如 MS2-Status-Code )來設置錯誤代碼。 例如,將 header MS2-Status-Code 設置為200,400 雖然我不確定它是否可以覆蓋來自 Mocking 服務的驗證錯誤。 您將需要嘗試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM