Ниже приведен фрагмент кода Scala, сгенерированный Swagger Codegen.
def v4TestPostCheck(payload: TestResourceEntityRequest ): Option[TestResource] = {
val await = Try(Await.result(v4TestPostAsync(payload), Duration.Inf))
await match {
case Success(i) => Some(await.get)
case Failure(t) => None
}
}
def v4TestPostAsync(payload: TestResourceEntityRequest): Future[TestResource] = {
helper.v4TestPost(payload)
}
def v4TestPost(payload: TestResourceEntityRequest)(implicit reader: ClientResponseReader[TestResource], writer: RequestWriter[TestResourceEntityRequest][]): Future[TestResource] = {
// create path and map variables
val path = (addFmt("/v4/test"))
// query params
val queryParams = new mutable.HashMap[String, String]
var headerParams = new mutable.HashMap[String, String]
headerParams = ApiInvoker.defaultHeaders
val resFuture = client.submit("POST", path, queryParams.toMap, headerParams.toMap, writer.write(payload))
resFuture flatMap { resp =>
println("response:"+resp.status)
println(resp.body)
println(resp.statusText) // this is printing the error message sent by Service, but how to return this message from this method
println(resp.uri)
Try {process(reader.read(resp))} match {
case Success(obj) => obj
case Failure(_) => throw new Exception("")
}
}
}
В случае успеха этот код успешно получает объект TestResource.
Однако в случае любой ошибки / BadRequest, он получает пустой объект TestResource.
Вместо этого он должен сообщить об ошибке, выданной службой.
Как мы можем перехватить эти сообщения, используя сгенерированный код?