实现Spring Base RestController

问题描述 投票:-1回答:1

我是Spring和Spring-boot的新手。

我必须实施一些休息服务。

通常,我有两种不同类型的这些Rest服务,我想创建两种不同的BaseController来实现我将对其他特定子控制器使用的通用逻辑。

例如。我想拥有一个基本控制器(以映射基本URL /api/v1/typeA/),而没有(可能)任何特定服务(GET,POST等)

而且我想为每个子控制器扩展此基本控制器

例如:

  1. ControllerA1扩展了BaseControllerA(/api/v1/typeA/EntityA1)使用GET,POST等方法
  2. ControllerA2扩展了BaseControllerA(/api/v1/typeA/EntityA2)使用GET,POST等方法

我想拥有这个是因为,可能我需要每个子控制器的一些公共逻辑(例如,授权逻辑,验证逻辑,...)

实际上,我想扩展BaseController,每个方法都将继承共享的逻辑。

[如果可能,我将在将请求处理到子控制器中时准备经过验证的对象。我的意思是:也许当我将验证请求时,我将需要进行一些查询以检索一些数据。如果将完成验证,我想将此数据注入请求中,并且可以访问特定的子控制器(无需进行相同的查询)

您能建议我一些例子或信息来实现这一目标吗?关于我的问题有什么建议吗?

java spring spring-boot spring-restcontroller
1个回答
0
投票

您不需要BaseController。我认为您需要一个Filter,可以在其中实现自定义授权逻辑。您可以将此过滤器添加到请求链,这样,您只需执行一次该逻辑即可。

以下是实现Filter的一些示例:

Filter's不限于实现授权逻辑。您还可以添加特定的逻辑,例如进行日志记录。

© www.soinside.com 2019 - 2024. All rights reserved.