审查生成的 http4s 订单路由

来自 Scala 后端开发
Scala 3.9.0 / Cats Effect 3.7.1 / http4s 0.23.36 / Java 25 LTS 高级 8分钟 找出 4处问题

在这条路由接收生产订单前,对它进行审查。

认证租户、校验请求、以幂等方式创建订单,并在提交后持久发布通知。

scala
def routes(
  service: OrderService,
  publisher: Publisher
): HttpRoutes[IO] = HttpRoutes.of[IO]:
  case request @ POST -> Root / "orders" =>
    for
      input <- request.as[CreateOrderRequest]
      tenant <- IO.pure(request.headers.get(ci"X-Tenant").get.head.value)
      existing <- service.findByKey(input.requestId)
      response <- existing match
        case Some(order) => Ok(order)
        case None =>
          for
            order <- service.create(tenant, input)
            _ <- IO(publisher.publish(order))
            response <- Created(order)
          yield response
    yield response

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误