2016-09-28 81 views
0

要求 - 用戶將點擊一個URL並在調用機器上下載CSV。UnsupportedMediaTypeException RAML Mule

實施 下面是我RAML(1.0)定義

/{format}: 
    is: [ genericErrorResponsesCompliant ] 
    get: 
     description: Get/Download list of all ACTIVE accounts in a given format (CSV/JSON) default is JSON 
     body: 
     application/json: 
     responses:  
     200: 
      body: 
      application/octet-stream: 
     202: 
      body: 
      application/json:     
     404: 
      body: 
      application/json: 
       example: !include resources/json/example/error/error-resource-not-found-response-example.json 

ISSUE: 當請求使用發送 -

  1. API-控制檯來調用API ,可見CSV響應
  2. 郵遞員 - I得到UnsupportedMediaTypeException在騾控制檯
  3. 郵差(當內容類型的應用程序/ JSON傳遞)CSV輸出是在響應截面看
  4. 瀏覽器我得到錯誤UnsupportedMediaTypeException

問題 如果我沒有設置內容類型,那麼API-Kit無法驗證併發送異常。有沒有辦法將默認的Content-Type設置爲application/json,最終用戶可以從瀏覽器訪問url並下載csv?

我應該能夠克服異常的API,工具包

拋出如果您需要了解更多信息,讓我知道,但我努力完成這件事。任何幫助將不勝感激。

異常 根異常堆棧跟蹤: org.mule.module.apikit.exception.UnsupportedMediaTypeException 在org.mule.module.apikit.HttpRestRequest.handleUnsupportedMediaType(HttpRestRequest.java:306) 在org.mule .module.apikit.HttpRestRequest.negotiateInputRepresentation(HttpRestRequest.java:300)

環境 騾子3.8 Studio版本6.1.1

回答

0

它的運行becau你有這樣的GET請求:

get: 
     description: Get/Download list of all ACTIVE accounts in a given format (CSV/JSON) default is JSON 
     body: 
     application/json: 

刪除正文:應用程序/ JSON有沒有需要它的GET請求。然後,它將允許您在不使用Content-type的情況下調用API。

+0

在** api-main **流程中添加set-property如下。 這個流程是RAML生成的,所以任何改動都會有任何副作用? 有了以下更改,我的需求工作 ' ' –

0

我希望它的工作。 獲取相同的例外。 RAML @ ryan-carter建議

/{format}: 
    is: [ genericErrorResponsesCompliant ] 
    get: 
     description: Get list of all ACTIVE accounts for a given country in a given format (CSV/JSON) default is JSON 
     headers: 
     Content-Type: 
      default: 
      '*/*' 
     responses:  
     200: 
      body: 
      application/octet-stream: 
+0

還有什麼更改要做? 我不想傳遞Content-type並希望執行請求 –