Слуга Haskell: описание Swagger для загрузки MultiPart - PullRequest
0 голосов
/ 30 ноября 2018

Я использую servant-swagger для определения службы REST и создания из нее файла Swagger.Он использует расширенную версию комбинатора загрузки файлов , чтобы определить клиента для конечной точки для добавления файла.Я хотел бы добавить описание Swagger в API загрузки.Я был бы счастлив, если бы я мог добавить параметр типа

{
  "in": "formData",
  "name": "file",
  "type": "file",
  "description": "File to upload"
}

в Swagger.Есть идеи, как это сделать?Я пытался

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

, но это не генерирует описание в файле Swagger (хотя он компилируется).

1 Ответ

0 голосов
/ 04 декабря 2018

Пошли с этим:

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))
...