Тапир - метод слишком большой - PullRequest
2 голосов
/ 12 марта 2020

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

[info] Компиляция 3 Scala источников в /endpoints/target/scala-2.13/classes ... [ошибка] Ошибка при отправке / конечные точки / сеанс $ [ошибка] Слишком большой метод: конечные точки / сеанс $. () V [ошибка] обнаружена одна ошибка [ошибка] (конечные точки / компиляция / компиляция) Не удалось выполнить компиляцию [ошибка] Общее время: 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]),
    ))

1 Ответ

1 голос
/ 19 марта 2020

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...