首页 > 解决方案 > 如何使用 Spring Boot 提供 2 个不同的 API?

问题描述

我有一个 Spring Boot 应用程序,它提供前端应用程序使用的 API(CRUD 操作)。此 Spring Boot 应用程序基于 oauth2.0 身份验证标准,用于针对授权服务器验证在每个 API 的标头中接收到的 JWT 访问令牌。我想提供另一个 API 供后端使用(M2M 使用)。此 API 将依赖于相同的数据库(相同的实体),但会略有不同(此处仅允许读取操作,并且响应包含更多字段)。此外,这个新 API 将依赖另一个授权服务器来验证 JWT 令牌。

首先,我想为这两个 API 提供相同的 Spring Boot 应用程序,但看起来支持这两个 API 会很困难(例如,令牌的颁发者 uri 不同,端口可以不同,API 的路径不同.. )。

所以,我现在正在考虑将 2 个 APIS 分成 2 个不同的 Spring Boot 应用程序,以便这些应用程序本质上是隔离的,但我不确定这最后是否是一个好习惯?例如,这种设计可能出现的并发问题如何?相反,我可以轻松构建共享相同代码仓库的 2 个 Spring Boot 应用程序(一些代码对于两个应用程序应该是通用的)。这些是我的问题,所以任何建议将不胜感激。

标签: spring-bootapi

解决方案


您可以尝试使用多个身份验证提供程序。以下给出的示例 - Java Spring Security 配置 - 多个身份验证提供程序


推荐阅读