我目前有:
- 作为单独的应用程序运行的 REST API (Jersey)
- 作为 REST API 客户端的 GUI 应用程序 (JSF)
我想知道从 GUI 应用程序与 REST API 对话的最佳方式是什么。REST API 是无状态的,但 GUI 应用程序是有状态的,并且必须通过每个 REST 请求传递身份验证信息(基本身份验证)。因为我们必须同时支持数百个用户,所以我们想配置我们的 Jersey 客户端以进行连接池。
我们可以通过使用 Apache 的 HTTP 客户端配置 Jersey 客户端来处理连接池。可以使用 HTTPBasicAuthFilter 来处理身份验证,它会自动为每个请求发送相同的凭据。
但是,我不确定最好为整个 GUI 应用程序配置 1 个客户端,还是为每个会话创建一个新客户端。
对于应用程序的 1 个客户端,连接池是有意义的,但是我必须找到一种方法来为每个请求设置正确的身份验证信息。HTTPBasicAuthFilter 假定凭据永远不会更改,我们的应用程序并非如此。
如果我为每个会话创建一个带有新 HTTPBasicAuthFilter 的客户端,那么身份验证是微不足道的,但我没有从连接池中获得任何好处,因为每个客户端都有自己的池。
我怀疑我是第一个遇到这个问题的人,所以我很好奇其他人是如何解决这个问题的。
亲切的问候,
格伦