spring-boot - 对于 Android 应用,API 服务器应该是无状态的吗?
问题描述
我正在创建一个餐厅评论应用程序。将有一个 Spring Boot API 服务器作为它的后端。我可以轻松地将 Spring Security 中的无状态属性设置为:
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS);
现在最好的做法是什么?它应该是有状态的还是无状态的?
如果它应该是无状态的,那么每个 http api 调用都需要重新验证,对吗?(我的意思是应用程序需要发送用户名和密码)。
谢谢。
解决方案
使 API 调用无状态有许多优点:
- 无状态使 REST API 不那么复杂,因为 Web 服务不需要维护客户端之前的交互
- 无状态 API 也很容易缓存
- 无状态通过将 API 部署到多个服务器,有助于将 API 扩展到数百万并发用户
- Web 服务可以独立处理每个方法请求
无状态 API 调用的缺点是 Web 服务需要在每个请求中获取额外的信息,然后进行解释以获取客户端的状态。
客户端可以使用令牌来调用与每个请求一起发送的这些 API。
推荐阅读
- python - 输入 n 个不同的正数。计算其中所有素数的平均值。[Python]
- azure-webjobs - .Net 4.7 - Azure WebJob 项目 - NuGet 更新后缺少 JobHostConfiguration/RunAndBlock
- c# - 使用 CrystalDecisions.CrystalReports.Engine 创建新的 ReportDocument 时出现 FileNotFoundException
- reactjs - 如何使用 Material-UI ⚛️ React Web 更改标签的样式(颜色;图标;指示器;大小等)?
- python - 如何用熊猫四舍五入计算
- android - Gradle 生成 APK -- 条目名称 'META-INF/androidx.hilt_hilt-common.version' 冲突
- node.js - TypeScript:捕获在高阶函数中作为参数传递的函数的变量签名
- c++ - 为什么使用字符串会导致退出代码 3 而使用 char[] 不会
- c# - 从通用 C# 对象中递归删除键
- python - 从单词列表和句子列表创建并行语料库(Python)