问题标签 [restful-architecture]

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 投票
0 回答
80 浏览

wcf-rest - WCF REST - RESTful 框架

我在互联网书评中看到过:

它根本不涵盖 REST,最多涵盖 WCF REST,这不是一个 RESTful 框架。

  • 这是什么意思?
  • WCF RESTRESTful 框架有什么区别?

有人可以详细说明一下吗?

我还没有开始使用 WCF REST,但有计划很快开始。

在此先感谢您的帮助...

0 投票
2 回答
5138 浏览

rest - Tomcat容器中的Dropwizard

我有一个在 tomcat 中运行的现有应用程序。现在我正在为我的新休息网络服务评估 dropwizard。现在,dropwizard 带有内置的码头。如何使用我的 tomcat 容器而不是它的码头容器来部署它?

0 投票
4 回答
530 浏览

java - RESTful URL 设计

我们有一个功能来检查地址是否有效。

起初,网址就像

/address/validate/{city}/{state}/{zipCode}

但后来我认为地址的所有参数只是一个资源。所以我把它改成了

/address/validate/{city}.{state}.{zipCode}

我不确定哪个更好,你的建议是什么?

0 投票
1 回答
2093 浏览

android - 在 http url 中发送 json 字符串

我正在将数据从我的 Android 应用程序发送到编写为 asp.net web api 的 REST 服务。我已经成功发送了诸如

http://www.deanblakely.com/REST/api/products/3并处理 web.api 中的参数。

现在,在 Android 客户端中,我使用 GSON 将复杂对象转换为 json 字符串,字符串如下:

[{"TStamp":"Sep 25, 2012 5:04:46 PM","emailaddress":"webapi@restserver.com","altitude":0.0,"latitude":3.3743984E7,"longitude":-1.18107841 E8,"legnum":1}]

如何将此 json 字符串放入 url?例如我可以把它放在斜线之间吗?例如http://www.deanblakely.com/REST/api/objects/ {"TStamp":"Sep 25, 2012 5:04:46 PM","emailaddress":"webapi@restserver.com","altitude ":0.0,"纬度":3.3743984E7,"经度":-1.18107841E8,"legnum":1} ??

PS。我在 web.api 上的所有方法都是 Gets。我想保持这种方式,因为它更简单。如果您对此策略有疑问,请参阅:http ://forums.asp.net/t/1843826.aspx/1?Web+api+CRUD+Operations

谢谢,院长

0 投票
1 回答
590 浏览

web-services - 解析 REST 与 SOAP Web 服务

我正在使用公共 RESTful API。该服务效果很好,但我在任何地方都找不到 WADL。因此,在接收到流后,我只需使用标准 DOM 对其进行解析并将其转换为我的 POJO (org.w3c.dom)。

然而,几年前,我使用 SOAP 服务并使用了 Axis2,在那里我能够使用 Axis2 附带的实用程序生成关联的客户端类以将服务编组到 Java 中。

我想知道是否有类似的 REST API,如果我有 WADL,我可以做类似的事情。我现在这样做的方式并不太糟糕而且速度很快,只是看起来已经过时了。

0 投票
1 回答
219 浏览

rest - Glassfish 内置 RESTful EJB 接口以及 SOAP

我目前正在学习 Glassfish,我发现可以添加注释 @WebService (javax.jws.WebService),并且容器将自动为特定 bean 启用 SOAP Web 服务。由于我对使用 SOAP 并不真正感兴趣,我想知道是否可以使用服务器内置功能来实现相同的功能,但对于 RESTful 服务,无需明确编写我自己的功能。

谢谢

0 投票
2 回答
2401 浏览

rest - 在 RESTful API 中访问对象的版本/修订

在设计 RESTful API 时,我们遇到了如何访问“同一对象”的不同版本的问题。假设页面对象由唯一键标识并通过 GET /api/page/pagekey 访问。它可以通过发送 PUT /api/page/pagekey 和正文中的适当文档来更新。

现在我们的系统会跟踪页面的旧版本,我们也希望通过 API 访问这些旧版本。让我们假设文档的旧版本是版本 1。似乎至少有两种方法可以设计 API 来访问这个特定版本的页面:

  1. 获取 /api/page/pagekey/1
  2. 获取 /api/page/pagekey?version=1

第一个变体将特定版本呈现为其自己的资源;第二个变体为现有资源提供了一个可选的版本上下文。

  • 变体 (1) 或 (2) 是更好的解决方案吗?还是有更好的方法来做到这一点?
  • 在变体 (1) 中,对不存在的版本号的请求,例如 /api/page/pagekey/7 可能会触发 HTTP 404 Not Found,这很方便。当考虑变体 (2) 时,这是否也是一个有效的状态响应,我们只更改现有资源的上下文“版本”,如果没有版本参数返回 HTTP 200 Ok 响应?
0 投票
4 回答
267 浏览

rest - REST 中用户的表示

我慢慢开始理解 REST 并且有一件事让我感到困惑。

我知道 REST 中的大部分内容都是“资源”。所以我想知道在用户注册/登录的情况下我们指的是哪种资源?

users吗?那么这是否意味着一个 POST onusers将注册一个新用户。如果是这种情况,那么我如何验证用户身份?users带有编码密码/用户名对的 GET ?

我真的很困惑。

鉴于我刚刚开始了解 REST,我的理解可能完全错误。

任何帮助表示赞赏!

谢谢!

0 投票
1 回答
146 浏览

rest - 用于更新资源和创建关联对象的 RESTful 方法

我正在为提供临床数据分析的服务设计一个 REST 风格的 API。API 允许用户创建患者资源。此资源为服务器端分析提供输入数据。

创建 Patient 既不安全也不幂等(服务器分配 ID),因此使用 POST, POST Patients

患者资源可能很大,因此它具有可以更新的子资源,例如药物。更新 Medications 是幂等的,因为整个 med 集都将被替换,因此使用 PUT。

临床分析由请求触发 POST /Patients/{patientId}/analysisResults。或者,用户可以请求在 POST /Patients 请求的响应中返回分析结果;这节省了额外的 HTTP 往返。

我的问题是这个;用户希望将分析结果包含在对更新 (PUT) 的响应中Patient/Medications- 这是可以理解的,因为他们不想再次请求检索结果。因此PUT Patient/Medications,对于 Patient 资源而言将是幂等的,但对于所有资源而言不是幂等的,因为将创建新的 analysisResults 子资源。我是不是该:

  • a) 使用 PUT 启用此功能。
  • b) 使用 POST 启用此功能。
  • c) 坚持需要单独调用来创建新的 analysisResults,即使这会增加最终用户的整体响应时间?
0 投票
0 回答
276 浏览

asp.net-mvc - ASP.NET MVC 模型绑定优先级与 RESTful 资源

ASP.NET MVC 在为传入请求绑定模型时使用的优​​先顺序在 REST 上下文中困扰着我。本质上,MVC 使用以下优先顺序的值绑定模型:

  • 帖子正文
  • 路线(网址)
  • 查询字符串值

困扰我的是,它是如何用消息正文中的值胜过资源的 Uri 的。

例如,我可以公开一个 RESTful 资源,如下所示:

...返回:

请注意,使用“self”链接(HAL样式),我拥有修改狗所需的一切,方法是将这些资源放回服务器而不需要它们的“id”值。

服务器拥有更新狗所需的一切,没有混乱。MVC 会将所有内容很好地模型绑定到我的模型中,包括 id(来自路由)。

但是,我看到的一些 API 样式在消息正文中包含“id”,因此它看起来像这样:

但从根本上最困扰我的是,如果我有一个定义为“{controller}/{id}”的路由,并且客户端执行以下操作:

...然后 MVC 会将“id”模型绑定到 5(来自消息正文),而不是 7(来自路由),但基于我的客户端提供的资源 URI,他们应该已经更新 Fido 的信息。这类似于尝试将文档保存到某个位置的硬盘驱动器,并且由于文档中的某些内容,它会自动保存在其他位置。

如何更改 ASP.NET MVC 中的开箱即用模型绑定优先级以优先于消息正文(当存在冲突时)的路由值,在这种情况下这样做是一件好事吗?