2017-09-10 30 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*前缀开头。

相关问题