Тапир - метод слишком большой

Я определяю конечные точки с помощью тапира, однако получаю следующую ошибку компиляции.

[информация] Компиляция 3 источников Scala в /endpoints/target/scala-2.13/classes ... [ошибка] Ошибка при отправке /endpoints/Session$ [error] Метод слишком велик: endpoints/Session$. ()V [ошибка] обнаружена одна ошибка [ошибка] (endpoints / Compile / compileIncremental) Ошибка компиляции [ошибка] Общее время: 26 с, завершено 12 марта 2020 г. 15:29:54

 val manualReviewEndpoint: Endpoint[(SessionModel.AuthToken, SessionModel.ManualReview.ManualReviewRequest), ErrorsModel.FailureResponse, SessionModel.ManualReview.ManualReviewResponse, Nothing] = endpoint
    .tag("Sessions")
    .description("Triggers manual review for sessions within date range")
    .post
    .in(auth.bearer)
    .in("sessions" / "trigger-review")
    .in(jsonBody[SessionModel.ManualReview.ManualReviewRequest])
    .out(jsonBody[SessionModel.ManualReview.ManualReviewResponse])
    .errorOut(oneOf(
      statusMapping(StatusCode.BadRequest, jsonBody[ErrorsModel.FailureResponse400]),
      statusMapping(StatusCode.Unauthorized, jsonBody[ErrorsModel.FailureResponse401]),
      statusMapping(StatusCode.NotFound, jsonBody[ErrorsModel.FailureResponse404]),
      statusMapping(StatusCode.UnprocessableEntity, jsonBody[ErrorsModel.FailureResponse422]),
      statusMapping(StatusCode.FailedDependency, jsonBody[ErrorsModel.FailureResponse424]),
      statusMapping(StatusCode.InternalServerError, jsonBody[ErrorsModel.FailureResponse500]),
    ))

2 ответа

Решение

Похоже, что из-за того, что у меня было так много конечных точек со многими statusMappings, конструктор становился слишком большим.

Я исправил эту проблему, поставив manualReviewEndpoint в свой собственный объект.

Это может быть связано с большой длиной конечной точки, для меня это сработало, изменив конечную точку с «val» на «def», что выглядело бы так def manualReviewEndpoint

Другие вопросы по тегам