首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tapir端点的Trace4Cats示例

Tapir端点的Trace4Cats示例
EN

Stack Overflow用户
提问于 2022-05-11 14:08:29
回答 1查看 184关注 0票数 0

我正在学习不同的Scala库,我需要跟踪。Trace4Cats声称与Tapir端点集成,我希望将它包含在我的示例Play SIRD路由器中,该路由器使用Tapir和OpenAPI文档。

到目前为止,我已经包含了这些用于跟踪的依赖项:

代码语言:javascript
复制
// Tracing
libraryDependencies += "io.janstenpickle" %% "trace4cats-core" % trace4CatsVersion
libraryDependencies += "io.janstenpickle" %% "trace4cats-inject" % trace4CatsVersion
libraryDependencies += "io.janstenpickle" %% "trace4cats-avro-exporter" % trace4CatsVersion
libraryDependencies += "io.janstenpickle" %% "trace4cats-sttp-tapir" % trace4CatsVersion
libraryDependencies += "io.janstenpickle" %% "trace4cats-datadog-http-exporter" % trace4CatsVersion

  1. I有一个使用Play
  2. 的SIRD路由器的Tapir示例,这是Tapir docs建议的。这是ApiRouter

代码语言:javascript
复制
@Singleton
class ApiRouter @Inject() (implicit mat: Materializer) extends SimpleRouter {
  // Interpreter
  private val interpreter = PlayServerInterpreter()

  // Controller logic
  def countCharacters(s: String): Future[Either[Unit, Int]] =
    Future(Right[Unit, Int](s.length))

  // Endpoint
  val countCharactersEndpoint: PublicEndpoint[String, Unit, Int, Any] =
    endpoint
      .tag("Example API")
      .in("count")
      .in(query[String]("string"))
      .out(plainBody[Int])
      .errorOut(
        statusCode(StatusCode.NotFound)
      )

  // Route
  val countCharactersRoutes: Routes =
    interpreter.toRoutes(countCharactersEndpoint.serverLogic(countCharacters))

  // OpenAPI
  private val openApiDocs: OpenAPI = OpenAPIDocsInterpreter().toOpenAPI(
    List(countCharactersEndpoint),
    "Tapir Play Sample",
    "1.0.0"
  )

  // Doc will be on /docs
  private val openApiRoute: Routes = interpreter.toRoutes(SwaggerUI[Future](openApiDocs.toYaml))

  // Router
  override def routes: Routes =
    openApiRoute
      .orElse(countCharactersRoutes)
}

我试图搜索Trace4Cats文档,了解如何将它与Tapir集成,但我发现的只是其他示例,包括STTP,但我不确定Tapir的语法。我需要有使用Trace4Cats (或Natchez任何其他可以在这里工作的解决方案)经验的人的帮助。我们非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-05-11 18:14:49

您的问题过于宽泛,无法给出准确的答案,但我建议您查看trace4cats:https://github.com/trace4cats/trace4cats-sttp/tree/master/modules/sttp-tapir/src/test/scala/io/janstenpickle/trace4cats/sttp/tapir的trace4cats存储库中的测试和示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72202538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档