哪个RESTful HTTP谓词用于读取时变状态?

哪个RESTful HTTP谓词用于读取时变状态?,rest,http,http-headers,Rest,Http,Http Headers,我正在考虑创建一个RESTful API来监控远程仪器——为了便于讨论,假设远程仪器是一个电压表 API的一个重要功能是随时读取仪器测量的电压 我的问题:如果有的话,什么是合适的HTTP动词来读取可以从一次读取到下一次读取的值 据我所知,GET是错误的,因为服务器可能会假定该值是幂等的,从而缓存返回的值 但是其他常见的选择——PUT和POST——似乎用于创建和更新值,而不是返回值 我可以想出几种方法: 将GET与缓存控件一起使用:标头中没有缓存 使用(或滥用)POST并使其返回值 不要对此类应

我正在考虑创建一个RESTful API来监控远程仪器——为了便于讨论,假设远程仪器是一个电压表

API的一个重要功能是随时读取仪器测量的电压

我的问题:如果有的话,什么是合适的HTTP动词来读取可以从一次读取到下一次读取的值

据我所知,GET是错误的,因为服务器可能会假定该值是幂等的,从而缓存返回的值

但是其他常见的选择——PUT和POST——似乎用于创建和更新值,而不是返回值

我可以想出几种方法:

  • 将GET与缓存控件一起使用:标头中没有缓存
  • 使用(或滥用)POST并使其返回值
  • 不要对此类应用程序使用RESTful设计

正确的方法是什么?

当您只想从服务器获取一些数据时,使用GET作为隐含的含义


正如您所说的正确,您需要有正确的缓存机制(我故意这么说,因为您可能只是将缓存最大年龄设置为0,但您可能在以后的任何时候都需要缓存),以确保您在响应中获得新的数据。

当您只想从服务器获取一些数据时,使用get As这是一个隐含的含义

正如您所说的那样,您需要实现正确的缓存机制(我故意这么说,因为您可能只是将cache max age设置为0,但以后可能还需要缓存),以确保在响应中获得新数据

我的问题:如果有的话,什么是合适的HTTP动词来读取可以从一次读取到下一次读取的值

GET方法请求传输目标资源的当前选定表示形式

缓存的语义如中所述;特别是,您可以使用向中介组件提供正确缓存响应所需的元数据。如果您总是希望中间组件在重用某个值之前与原点进行检查,则缓存控制指令的列表包括

这是的要点-因为资源统一地实现了一组一致的语义,所以客户机和中介可以依赖这些语义进行贡献,而无需知道资源的具体细节、实现或表示

REST体系结构风格与其他基于网络的风格的主要区别在于它强调组件之间的统一接口(图5-6)。通过将通用性软件工程原理应用于组件接口,简化了整个系统架构,提高了交互的可视性。实现与它们提供的服务分离,这鼓励了独立的可进化性。然而,权衡的结果是,统一的接口会降低效率,因为信息是以标准化的形式传输的,而不是以特定于应用程序需求的形式传输的。REST接口的设计目的是高效地进行大粒度超媒体数据传输,针对Web的常见情况进行优化,但导致的接口对于其他形式的体系结构交互不是最佳的

我的问题:如果有的话,什么是合适的HTTP动词来读取可以从一次读取到下一次读取的值

GET方法请求传输目标资源的当前选定表示形式

缓存的语义如中所述;特别是,您可以使用向中介组件提供正确缓存响应所需的元数据。如果您总是希望中间组件在重用某个值之前与原点进行检查,则缓存控制指令的列表包括

这是的要点-因为资源统一地实现了一组一致的语义,所以客户机和中介可以依赖这些语义进行贡献,而无需知道资源的具体细节、实现或表示

REST体系结构风格与其他基于网络的风格的主要区别在于它强调组件之间的统一接口(图5-6)。通过将通用性软件工程原理应用于组件接口,简化了整个系统架构,提高了交互的可视性。实现与它们提供的服务分离,这鼓励了独立的可进化性。然而,权衡的结果是,统一的接口会降低效率,因为信息是以标准化的形式传输的,而不是以特定于应用程序需求的形式传输的。REST接口的设计目的是高效地进行大粒度超媒体数据传输,针对Web的常见情况进行优化,但导致的接口对于其他形式的体系结构交互不是最佳的