首页 > 解决方案 > 对于 Android 应用,API 服务器应该是无状态的吗?

问题描述

我正在创建一个餐厅评论应用程序。将有一个 Spring Boot API 服务器作为它的后端。我可以轻松地将 Spring Security 中的无状态属性设置为:

http.sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);

现在最好的做法是什么?它应该是有状态的还是无状态的?

如果它应该是无状态的,那么每个 http api 调用都需要重新验证,对吗?(我的意思是应用程序需要发送用户名和密码)。

谢谢。

标签: spring-bootspring-securityspring-sessionstatelessstateful

解决方案


使 API 调用无状态有许多优点:

  • 无状态使 REST API 不那么复杂,因为 Web 服务不需要维护客户端之前的交互
  • 无状态 API 也很容易缓存
  • 无状态通过将 API 部署到多个服务器,有助于将 API 扩展到数百万并发用户
  • Web 服务可以独立处理每个方法请求

无状态 API 调用的缺点是 Web 服务需要在每个请求中获取额外的信息,然后进行解释以获取客户端的状态。

客户端可以使用令牌来调用与每个请求一起发送的这些 API。


推荐阅读