问题标签 [rest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
17 回答
64897 浏览

debugging - 如何调试 RESTful 服务?

我正在寻找一种简单的方法来调试 RESTful 服务。例如,大多数 Web 应用程序都可以使用您的普通 Web 浏览器进行调试。不幸的是,同一个浏览器不允许我测试 HTTP PUT、DELETE,在某种程度上甚至是 HTTP POST。

我不希望自动化测试。我想通过快速的健全性检查来运行新服务,理想情况下不必编写我自己的客户端。

0 投票
2 回答
843 浏览

http - RESTifying URL

在这里工作时,我们有一个为业务合作伙伴提供 XML 提要的盒子。通过指定查询字符串参数和值来自定义我们的提要请求。其中一些参数是必需的,但许多不是。

例如,我们要求所有请求都指定一个 GUID 来识别合作伙伴,并且请求可以是“获取最新”或“搜索”操作:

对于搜索:http://services.null.ext/?id=[GUID]&q=[搜索关键字]
类别中的最新数据:http://services.null.ext/?id=[GUID]&category=[ ID]

为这些参数构建 RESTful URL 方案很容易:

搜索:http://services.null.ext/[GUID]/search/[Keywords]
最新:http://services.null.ext/[GUID]/latest/category/[ID]

但是我们应该如何处理我们拥有的十几个可选参数呢?其中许多是相互排斥的,并且许多是组合的。很快,可能路径的数量变得极其复杂。

对于如何将具有复杂查询字符串的 URL 映射到更友好的 /REST/ful/paths,有哪些推荐做法?

(我对约定、方案、模式等感兴趣。不是在 Web 服务器或框架中实现 URL 重写的特定技术。)

0 投票
3 回答
916 浏览

language-agnostic - 您将 REST api 放在哪一层?

我们的应用程序的结构类似于:

UI <--> REST API <--> 工作流 <--> 业务逻辑 <--> DAL <--> DB

但是,我看到一些看起来人们正在做的例子

UI <--> 工作流 <--> REST API <--> 业务逻辑 <--> DAL <--> DB

这是我的想象吗?或者第二种选择是否被认为是可行的选择?

0 投票
1 回答
8433 浏览

ruby-on-rails - 在这种情况下,如何以 RESTfully 方式使用 Rails 帮助程序 link_to?

我基本上想使用 link_to 链接到控制器的索引方法。我试过:

但输出:

这显然是不对的,如果它离开了最后一点,它会完全按照我的意愿去做。我认为使用 RESTful 的东西我会开始忽略动作或类似的东西。我有什么误解?

0 投票
1 回答
1586 浏览

java - Seam/JSF 中验证失败的导航

我已经使用Seam (2.0.2.SP1) 玩了几个星期了,我已经掌握了大部分基础知识,但是我还没有想出一个像样的解决方案来解决以下问题。

假设我有一个位于 的表单/foo.xhtml,其中包含一个重写规则,以便将类似/foo.seam?id=<fooId>的 URL 转换为/foo/<fooId>. 表单上有commandButton一个 动作#{fooHome.update}。我还有一个导航规则,在/foo.page.xml成功发布后重定向回一个漂亮的、书签友好的 GET:

问题是当发生验证错误时,导航规则被跳过,我最终在/fooPOST 之后。

我的问题:有没有办法重定向验证错误,所以我最终得到一个 GET 请求/foo/<fooId>而不是 POST to /foo

我尝试在 中滚动我自己的验证方法fooHome,返回“失败”结果,但我真的不希望无效数据通过验证阶段(从而进入当前对话)。

0 投票
2 回答
672 浏览

api - 您是否会将下一代火星探测器的控制 API 构建为 RESTful 而不是 RPC?

如果这几乎是一个“讨论”问题,请原谅我,但我真的很感激是/否的答案,并有适当的解释。

假设你必须为机器人设计和实现一个控制 API,比如下一代火星探测器。您是根据 RESTful 原则构建此 API,还是使用经典的 RPC,例如 XMLRPC?

我问这个是因为我必须做类似的事情,尽管“机器人”是虚拟机的集合。一位颇有说服力的工程师(一位著名的 REST 倡导者)敦促我让 API 成为 RESTful。我从未使用过 REST 原则,并且我正在努力了解它们如何适合设计低级进程间 API。REST 似乎融入了与可修改的数据存储库交互的主题,通常距离很远。我正在尝试做的事情更像是在密切控制一个机器人。我可以看出人们如何争辩说,抽象地说,机器人只是一个数据存储库——“PUT 左转”、“PUT 行进 100 米”、“获取外部温度”。但这似乎是一个相当做作的模型。我当然不会从缓存或代理中获得任何好处(“你好,喷气推进实验室?这是堪培拉的 Akamai co-lo。我们现在要接管 Rover,好吗?”)

那么,RESTful 架构在这里有用吗?即使交互如此狭窄,它仍然优于 RPC 吗?

0 投票
6 回答
276924 浏览

wcf - WCF 服务的 REST / SOAP 端点

我有一个 WCF 服务,我想将它作为 RESTfull 服务和 SOAP 服务公开。以前有人做过这样的事情吗?

0 投票
6 回答
492 浏览

php - 开发一致库的最佳实践是什么?

我正在开发一对库来使用 REST API。因为我需要能够在非常不同的设置中使用 API,所以我目前计划有一个 PHP 版本(用于 Web 应用程序)和一个 Python 版本(用于桌面应用程序和长时间运行的进程)。在开发图书馆时是否有任何最佳实践可以帮助我保持理智?

0 投票
3 回答
752 浏览

http - 当资源被禁止但有备用资源时,HTTP 响应应该是什么?

如果我有一个请求客户端无权访问的资源,但我想通知他们他们有权访问的备用资源403 Forbidden我应该在标题或内容中向他们发送备用资源的 URI 吗?还是我应该只向303 See Other他们有权访问的资源发送重定向?

0 投票
1 回答
5803 浏览

wcf - 在 REST WCF URL 中使用反斜杠 (%5c)

我正在 WCF 上构建一个 REST 服务,我正在编写的方法之一是 GetProfile,它将返回给定用户名的配置文件。用户名将包括用户的域,因此将具有以下格式:“域\用户名”。

因此,我有一个名为 Profiles.svc 的服务,它设置了以下端点:

但是,当我尝试访问http://server/profiles.svc/DOMAIN%5cusername上的服务时(%5c 是反斜杠的 urlencoded 形式),我收到以下错误:

即使在我的 GetProfile 实现中没有实际定义代码时也会发生这种情况,因此我相信在 WCF 尝试将 URI 绑定到方法时会引发错误。

为了允许将反斜杠添加到 REST WCF 服务中的 URL,是否需要将一些设置添加到我的 Web 服务配置中?还是根本不允许使用反斜杠?