【发布时间】:2021-03-04 19:27:19
【问题描述】:
好的,第一次做API!
我的假设是,如果数据需要存储在后端以便在多个 API 调用中持续存在,则它需要 1) 在缓存中或 2) 在数据库中。是这样吗?
我正在查看 gem“google-id-token”的代码。它似乎正是我的谷歌登录应用程序所需要的。我的前端应用会通过请求将 google 令牌发送到 API。
gem 似乎缓存了来自 Google 的公共 (PEM) 证书(默认为一小时),然后使用它们来验证您提供的 Google JWT。
但是当我查看代码 (https://github.com/google/google-id-token/blob/master/lib/google-id-token.rb) 时,它似乎只是获取了 google 证书并将它们放入实例变量中。
我是否正确地认为下次有人调用 API 时,它将没有存储的数据的内存并再次获取它?
我猜这是一个两部分的问题:
- 如果我在我的 API 中的 @instance_variable 中添加一些内容,那么当下一个 API 调用进来时,该数据是否存在?
- 如果没有,“google-id-token”是否可以正确缓存其数据?也许HTTP请求以某种方式缓存在后端,因此网络请求实际上并没有一遍又一遍地发生?我可以测试一下吗?
我的冲动是编写“google-id-token”功能,使用 MemCachier 缓存 google 证书。但既然我不知道我在做什么,我想我会问。?也许 gem 可以正常工作,我不知道如何测试它。
【问题讨论】: