对于 Android 应用程序,API 服务器应该是无状态的吗?

Should an API server be stateless for an Android app?

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

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

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

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

谢谢。

API 调用无状态有很多优点:

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

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

客户端可以使用 tokens 来调用随每个请求一起发送的 API。