Haskell仆人:多部分上传的详细说明

时间:2018-11-30 09:09:01

标签: haskell swagger servant

我正在使用servant-swagger定义REST服务并从中生成一个Swagger文件。它使用File upload combinator的扩展版本来定义端点的客户端,以添加文件。我想在上传API中添加Swagger描述。如果可以添加类似

的参数,我会很高兴
{
  "in": "formData",
  "name": "file",
  "type": "file",
  "description": "File to upload"
}

扬扬。任何想法如何做到这一点?我正在尝试

instance HasSwagger api => HasSwagger (Files b :> api) where
  toSwagger _ = toSwagger (Proxy :: Proxy api)
    & allOperations.description .~ Just (Text.pack "Files description")

但这不会在Swagger文件中生成描述(尽管它可以编译)。

1 个答案:

答案 0 :(得分:1)

与此相关:

instance HasSwagger api =>
         HasSwagger (Files b :> api) where
  toSwagger _ = toSwagger (Proxy :: Proxy api)
    & addParam param
    where
      param = mempty
        & name .~ "file"
        & required ?~ True
        & description ?~ "File to upload"
        & schema .~ ParamOther (mempty
            & in_ .~ ParamFormData
            & paramSchema .~ (mempty & type_ .~ SwaggerFile))