2017-09-10 26 views
2

我的服務有上傳圖像文件POST方法。我使用的multipart/form-data的請求,並訪問來自服務類的Request.Files文件,因爲它是在文檔建議。ServiceStack - 如何讓文件上傳的POST方法強制

public class ImageManagement: Service 
{ 
    public void Post(DetectionImageRequest imageRequest) 
    { 
     if (this.Request.Files.Length == 0) 
      throw HttpError.NotFound("File parameter is missing"); 

     // ... 
    } 
} 

我在這裏的問題是,它似乎ServiceStack沒有任何問題與郵政法符合它在我的ImageManagement類,如果文件是從Http請求丟失。如果我的Http請求的DetectionImageRequest部分缺失ServiceStack肯定會對該報告的錯誤。

而且,這樣其他用戶都沒有意識到,文件需要上傳的文件作爲HTTP請求的參數是不是在元數據頁中可見。我在Post方法添加檢查,如果文件被上傳,並拋出異常,如果它不是,但似乎有點傻拋異常,如果文件甚至沒有提及文件的要求。

有沒有什麼辦法讓文件所需的參數?另外,是否有可能將文件作爲參數記錄在元數據頁中,以便用戶知道它存在?

回答

0

HTTP已上傳的文件不是DTO服務合同的一部分,它們通過multipart/form-data Content-Type上傳,因此沒有可以註釋的屬性以使其成爲必填字段。

您可以使用[Api][Description]屬性中的說明字段使用文本說明來告訴API消費者該服務接受文件。我還建議爲接受文件的服務使用命名約定,例如讓他們以Upload*前綴開頭。

相關問題