- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们在结构如下的 REST 服务器上有一些资源:
/someResources/foo
/someResources/bar
/someResources/baz
其中 someResource
是远处分布式对象的服务器表示。
我们想告诉服务器通过在网络中查看它并更新服务器的缓存来“刷新”它对“分布式对象”的表示,即我们不能简单地 PUT 新值。
什么是干净的 REST 方法?
a) 是否向 /refreshes/
发送一个新的“刷新请求”?
b) 是否将(带有空白文档)PUT 到 http://ip/someResources
?
c) 还有别的吗?
我喜欢 (a),因为它会给我们一个 ID 来识别和跟踪刷新命令,但担心我们创建了太多资源。有什么建议吗?
最佳答案
我会采用“刷新”资源方法。这有两个主要好处
(a) 与生命周期操作(复制、克隆、移动)一样,刷新的目的与底层资源的功能正交,因此应该完全分开
(b) 它为您提供了一些检查刷新进度的方法 - 刷新资源的外部状态将为您提供“状态”或“进度”属性。
我们已经以这种方式实现了生命周期操作,关注点分离是一个很大的设计优势。
另一种管理方法是允许服务器将其资源表示缓存一段时间,仅在超时后才实际检查真实状态。在此模型中,您的服务器实际上是一个中间缓存资源,应遵循 HTTP 缓存行为,请参阅 here更多细节。下面我引用了一个非常相关的部分,其中讨论了客户端覆盖缓存值。
13.1.6 客户端控制的行为虽然原始服务器(以及在较小程度上,中间缓存,通过它们对响应年龄的贡献)是过期信息的主要来源,但在某些情况下,客户端可能需要控制缓存关于是否返回缓存的决定未经验证的响应。客户端使用 Cache-Control header 的多个指令执行此操作。
客户端的请求可以指定它愿意接受未验证响应的最大年龄;指定零值会强制缓存重新验证所有响应。 客户端还可以指定响应过期前剩余的最短时间。这两个选项都增加了对缓存行为的约束,因此不能进一步放松缓存对语义透明性的近似。
客户端也可以指定它将接受陈旧的响应,直到达到某个最大的陈旧量。这放宽了对缓存的限制,因此可能会违反源服务器对语义透明性的指定限制,但可能有必要支持断开连接的操作,或在连接性差的情况下实现高可用性。
克里斯
关于http - REST API 设计 : Tell the server to "refresh" a set of resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821583/
在我的phone-gap index.html javascript部分中,window.refresh用于IOS,this.refresh用于android。我想对两者使用相同的index.html
我正在使用 Guzzle 获取域上设置了元刷新的网页的 HTML: Guzzle 似乎没有拦截这种重定向。这是正确的吗?我可以将 Guzzle 配置为跟随刷新吗? 我应该考虑其他哪些解决方案来解决问
我试图在另一个 DropDownList 发生变化后刷新下拉列表,但是 Refresh() 方法是未定义错误正在提升。我再次尝试读取数据源,它显示它正在加载,但数据仍然相同。请帮助解决这个问题。 代码
swift 我正在努力做到这一点,当您在 tableview 上拉动刷新时,它会使用存储在 Parse.com 上的数据更新 tableview 我已经研究过了,看来我需要使用 loadObjects
我有以下物化 View - CREATE MATERIALIZED VIEW TESTRESULT ON PREBUILT TABLE WITH REDUCED PRECISION REFRESH F
我正在使用 Cognito 用户池对系统中的用户进行身份验证。成功的身份验证会提供ID token (JWT)、访问 token (JWT) 和刷新 token 。 documentation her
我想使用 FlashMessage 显示错误(或成功)消息同时让我的页面在所需时间重新加载 我正在使用 FlashMessage我的代码看起来像 render() { return ( {
更新:我已经写了一篇博文,介绍我对这个问题的了解。我仍然不完全理解它,但希望有人会阅读这篇文章并阐明我的问题:http://andymcfee.com/2012/04/04/icon-fonts-ps
所以我有一个物化 View (我知道......): CREATE MATERIALIZED VIEW vw_my_view_here REFRESH COMPLETE START WITH SYSD
我正在尝试使用 the angular-oauth2-oidc Silent Refresh实现与在 IdentityServer4 服务器中配置的隐式流相结合。我有一个在 ng new ng-and
TL;DR - 如果 oauth2 授权发生在原生 android/ios 应用程序中,我如何在后端刷新 token ? 我正在研究 oauth2 与谷歌日历的集成。我的堆栈是将 SPA 应用程序作为
作为前言,我对java很陌生。因此,请期待愚蠢的错误。 我正在尝试在 BlueJ 中使用 java 的绘图面板做一个项目,但我不知道如何制作一个具有移动对象的程序。这是一个项目,所以提供了代码。我们必
我正在尝试使用我在许多网站上找到的不显眼但非常有用的润色来润色我的网络编程技能。 Stackoverflow.com,举个例子。当我提出问题时,页面会提交问题,我的浏览器会自行重新加载并显示我的问题。
AjaxControlToolkit.dll.refresh 文件的作用是什么? 最佳答案 *.dll.refresh 文件是一个非常简单的文件,它告诉项目外部引用所在的位置。 http://mons
如何使用watir-webdrive刷新页面? 我尝试了他们在这里说的话:http://watirwebdriver.com/sending-special-keys/,但是没有运气。 browser
我目前正在制作一个交互式图表,该图表应该计算商业项目的潜在风险因素。为此,我一直在使用百度 ECharts,并让图表在视觉上工作,但是当数据发生变化时无法让图表更新。 数据来自外部调查问卷,该问卷使用
在 plupload div 之后,我有一个带有 plupload 的上传表单和一个带有 bool 值的复选框。 如果选中该复选框,我想更改 plupload 中 url 的值。 这是我的代码
我有一个相当大的PHP代码库(10k文件),可以在Windows计算机上使用Eclipse 3.4/PDT 2来工作,而这些文件则托管在Debian文件服务器上。我通过Windows上的映射驱动器进行
使用 Angularjs v0.9 和 php 来实现我的成员(member)系统 在下面的函数中,我将调用一个api来编辑成员(member)的数据,成功后,php函数将返回 {"success":
我正在使用 setColor 和 getColor 方法更改 JPanel 的颜色。 现在我想更改它,这样您就不必在调用 getColor 的函数中单击 getColor 按钮 100 毫秒。 但是在
我是一名优秀的程序员,十分优秀!