Реализовать Spring Base RestController - PullRequest
0 голосов
/ 23 марта 2020

Я новичок в Spring и Spring-boot.

Мне нужно реализовать некоторые службы отдыха.

В общем, у меня есть два разных типа этих служб отдыха, и я бы Я хотел бы создать два разных BaseController для реализации общей логики c, которую я буду иметь для других указанных c субконтроллеров.

Например. Я хотел бы иметь базовый контроллер (для отображения базового URL /api/v1/typeA/) без (вероятно) каких-либо определенных c сервисов (GET, POST и т. Д. c)

И я хотел бы расширить этот базовый контроллер для каждого субконтроллера

Например:

  1. ControllerA1 расширяет BaseControllerA (/api/v1/typeA/EntityA1) с помощью методов GET, POST, et c
  2. ControllerA2 расширяет BaseControllerA (/api/v1/typeA/EntityA2) с помощью методов GET, POST и т. Д. c

Я хотел бы иметь это, потому что, вероятно, мне нужны некоторые логики общего доступа от каждого субконтроллера (например, логики авторизации , валидации logi c, ...)

Практически я хотел бы расширить BaseController, и каждый метод наследовал бы общие логики c.

Я хотел бы, если бы он возможно подготовить проверенные объекты, когда я обработаю запрос в субконтроллере. Я имею в виду: вероятно, когда я проверю запрос, мне нужно будет сделать несколько запросов, чтобы получить некоторые данные. Если проверка будет выполнена, я бы хотел добавить эти данные в запрос, и у меня будет доступ к ним в конкретный субконтроллер c (без выполнения тех же запросов)

Можете ли вы мне предложить какой-нибудь пример или информация для реализации этого? Любое предложение по моему вопросу?

1 Ответ

0 голосов
/ 23 марта 2020

Вам не нужно BaseController. Я думаю, что вам нужно Filter, где вы можете реализовать пользовательские логины авторизации c. Вы можете добавить этот фильтр в цепочку запросов, и таким образом вам потребуется только один раз реализовать эту логику c.

Вот несколько примеров реализации Filter:

Filter не ограничены реализацией логики авторизации c. Вы также можете добавить спецификацию c logi c, скажем, для ведения журнала.

...