在下面的例子中,如果我错过了请求主体中的任何字段,那么它就会在解析中给出错误,因为缺少字段。无论如何,我们可以忽略它,如果该字段不存在比它不应该给给予错误,而解析请求。同样在响应中,如果字段为空,则不应在响应中返回这些字段。我们如何才能做到这一点?
import sttp.tapir.generic.auto._
import sttp.tapir.json.circe.jsonBody
import sttp.tapir.server.ServerEndpoint
import sttp.tapir.{Endpoint, _}
case class Request{field1:String,field2:String}
case class Response{field1:String,field2:String}
private lazy val reqBody = jsonBody[Request]
private lazy val respBody = jsonBody[Response]
private val postEP: Endpoint[Unit, (CommonHeader, Request), (StatusCode, ErrorInfo), (StatusCode, Response), Any] =
baseEndpoint.post
.in("test")
.in(reqBody)
.out(statusCode.and(respBody))
1条答案
按热度按时间92vpleto1#
如果某个字段是可选的,则应在模型中将其表示为可选字段。最好的方法是使用
Option
类型,例如。如下所示:可选字段的值可以是
Some(value)
或None
。