有人可以用简单的术语解释“超文本作为应用程序状态的引擎”

2024-06-01

这似乎是我最难理解的 REST 原则。我知道,在设计 REST API 时,大部分精力应该花在为应用程序设计/描述超文本上。对于这个原理的现实世界应用有什么指示吗?原子协议如何应用这个原理? 有人可以简单地解释一下如何将其应用到假设的购物车 REST API 中吗?


当试图解释超媒体时,我喜欢使用通过路标和地图在汽车中导航的例子。我知道它不能直接回答您的问题,但可能会有所帮助。

当您驾驶汽车到达某个特定十字路口时,系统会向您提供路标,指示您可以从该十字路口前往何处。同样,超媒体根据您当前的状态为您提供了一组选项。

传统的基于 RPC 的 API 更像是一张地图。使用地图,您倾向于根据一组静态道路数据来规划路线。地图的一个问题是它们可能会过时,并且不提供有关交通或其他动态因素的信息。

路标的优点是可以随时更改,以绕行施工或控制交通流量。

我并不是说路标总是比地图更好的选择。显然,各有利弊,但了解这两种选择很有价值。超媒体也是如此。它是传统 RPC 接口的一个有价值的替代方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有人可以用简单的术语解释“超文本作为应用程序状态的引擎” 的相关文章

  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • Android REST API 连接

    我有点傻 对此感到抱歉 我编写了一个 API 它返回一些 JSON 我的目标是从 Android 应用程序使用此 API 我已经尝试过使用 AsyncTask 但失败了 我想像这样使用它 调用该类 告知 URL 和结果的类型 哪个json
  • 通过 PayPal REST API 示例获得折扣?

    PayPal GURUS 我需要帮助 如何插入折扣 我使用 REST API 可能是某个 可以显示代码示例吗 有什么方法可以使用 PHP REST API 发送折扣金额吗 目前 REST 支付 API 不支持折扣 您最好的选择是计算您端的折
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web
  • 强制 WCF 在进入实际函数之前对每个请求调用一个方法

    我有一个具有许多不同功能的 RESTful WCF 服务 对于每个函数 我需要调用我编写的身份验证方法 我可以在每个请求上手动调用此方法 但我一直在寻找一种方法来强制 WCF 引擎在输入这些函数之前调用此方法 有谁知道这是否可能 Cheer
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 设置restAssured 以全局记录所有请求和响应

    我想为所有人启用日志记录RestAssured默认情况下响应和请求 这就是我所做的 RestAssured requestSpecification new RequestSpecBuilder setBaseUri api setCont
  • 对于生成 json 以外的内容类型的操作,Swagger UI 会导致 HTTP 406 不可接受的响应

    我有一个用 Jersey 发布并用 Swagger 记录的 REST API 我还有一个使用该 API 的 Swagger UI 安装 我的几乎所有操作都会生成 application json 并按预期工作 除了一个 GET 操作会生成
  • RESTful webservice:如何在java中设置标头以接受Access-Control-Allow-Origin允许的XMLHttpRequest

    我有一个 RESTful Web 服务 它将返回字符串 它是用 Java JAX WS 编写的 我的问题是 当我向该 Web 服务发送请求时 其 URL 如下所示 http localhost 8080 project webservice
  • 将 HTTP GET 请求中的 JSON 数据从 JAVA 代码发送到 REST API

    我正在向我的 API 成功发出以下curl 请求 curl v X GET H Content Type application json d query some text mode 0 http host domain abc com
  • 为什么注解属性Rest.rootUrl的值必须是常量表达式?

    我在用着Android 注解框架 https github com excilys androidannotations 专门用于休息整合 我有以下代码 主机配置接口 public interface Host public String
  • 用于控制器休息服务的 Spring Junit 测试用例

    我有一个响应 REST 调用的控制器 我有针对其他公共方法的各种测试用例 我不知道如何为我的控制器编写一个 RequestMapping value api frames method RequestMethod GET public Li
  • HTTP 缓存的授权检查

    我有如下列出的 Web API 方法 用于REST服务 这是为了获取库存审核员的所有用户信息 只有授权的 Inventory Auditor 用户才能访问此资源 RoutePrefix api users public class User
  • REST Content-Type:它应该基于扩展还是 Accept 标头?

    RESTful Web 服务返回的表示 html xml json 应该由 url 还是由 Accept HTTP 标头确定 两者都有效 引用自xml com http www xml com pub a 2004 08 11 rest h
  • 检查 GitHub 令牌的范围

    我想被动地检查 GitHub 安全令牌的权限 范围 而不将某些内容推送到存储库中 我尝试了以下命令 我替换了 your username 你的访问令牌和我的存储库的 URL 但它显示一个错误 curl 3 URL 使用错误 非法格式或缺少
  • 对 Bitstamp 进行身份验证的 Java Jersey REST 调用

    我正在尝试对 Bitstamp 进行私人 REST 调用 请参阅https www bitstamp net api https www bitstamp net api 但是 我收到以下回复 错误 缺少密钥 签名和随机数参数 他们在 AP
  • 创建 RESTful WebService 并通过 Glassfish 4 提供服务

    我在 JEE6 中看到了很多关于 RESTful WebServices 的问题 所以我想与您分享这个示例解决方案 它展示了实现 RESTful Webservice 是多么容易 首先创建一个新的动态 Web 项目并将 Glassfish
  • 我应该根据当前的内部 api 创建公共 api

    我的项目是拥有公共网站和内容管理系统 CMS 我正在使用 Lambda 和 API Gateway 作为 api CMS 当前有一个 api GET 请求来获取下表中的所有数据 横幅 表 属性 id 字符串 主键 分区键 标题 字符串 is

随机推荐

  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • jQuery - 未捕获类型错误:对象 # 没有方法“parent”

    我的代码有问题 Chrome代码光谱仪说第21行有问题 问题如下 Uncaught TypeError Object
  • 我想要一个 Java 阿拉伯语词干分析器

    我正在寻找阿拉伯语的 Java 词干分析器 我找到了一个名为 AraMorph 的库 但它的输出是无法控制的 并且它会形成不需要的单词 还有其他阿拉伯语词干分析器吗 这是新的阿拉伯语词干分析器 Assem 的阿拉伯语轻词干分析器 http
  • 高效插入和更新时检查唯一性

    我的员工表中有 2 列 每列值必须是唯一的 staff code staff name staff id staff code staff name 1 MGT Management 2 IT IT staff 当向表中插入或更新项目时 我
  • Google Colab 上用于 TPU 的 Mask R-CNN

    我们正在尝试使用 Google Colab TPU 构建图像分割深度学习模型 我们的模型是 Mask R CNN TPU WORKER grpc os environ COLAB TPU ADDR import tensorflow as
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 如何更改锁屏自定义文本(所有者信息)?

    我写了程序代码 String message This is test Settings System putString context getContentResolver Settings Secure LOCK PATTERN EN
  • 两个 div 之间的匿名空白

    这里是Fiddle http jsfiddle net y6hSV 1 我有两个divs一个用于标题 另一个用于主体 在 的里面div这是标题 我还有另一个div那个 div 是floated left 因为那个floating 两者之间出
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 如何使用 Dart 构建枚举? [复制]

    这个问题在这里已经有答案了 Dart 语言没有枚举 还没有 至少在语言功能出现之前 构建枚举的正确或惯用的方法是什么 Dart 现在支持枚举 这个答案的其余部分适用于 Dart 1 8 请使用 Dart 对枚举的正式支持 在另一个答案中进行
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 如何获取 Prestashop 当前用户 ID?

    我使用下面的代码尝试获取 prestashop 中的当前用户 ID 我将此代码放在模块目录中的另一个 php 文件中 并通过模块文件调用它 id this gt context gt customer gt id customer 但它不适
  • 使用 tweetstream 守护进程写入数据库

    我正在尝试将与关键字匹配的所有推文写入我的数据库 我在中设置了以下内容tracker rb require rubygems require tweetstream TweetStream Daemon new Bill Gates mon
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • 方案中的配对组合

    我试图找到可以使用方案中的 N 对列表进行的各种组合 这是我到目前为止所处的位置 define pair combinations list of pairs if null list of pairs nil let first caar
  • 如何自动为 Swift 类创建初始化程序?

    UPDATE 使用结构而不是类 struct 在很多方面都更好 它有自己的初始化器 这是我的模型课 是否有可能创建init自动方法 每次我都必须将所有变量一一初始化 这会花费很多时间 class Profile var id String
  • iOS 发送 iMessage 尽可能简单

    我希望能够以编程方式发送 iMessage 除了调用一个将文本发送到带有消息的号码的函数之外 无需执行任何其他操作 这两个消息都是文本框 我真的很感激一些示例代码 因为我在网上搜索过 但我发现没有任何帮助 这不适用于商业应用程序 仅适用于我
  • 有人可以用简单的术语解释“超文本作为应用程序状态的引擎”

    这似乎是我最难理解的 REST 原则 我知道 在设计 REST API 时 大部分精力应该花在为应用程序设计 描述超文本上 对于这个原理的现实世界应用有什么指示吗 原子协议如何应用这个原理 有人可以简单地解释一下如何将其应用到假设的购物车