1

我有一个关于 REST 的一般问题。

想象一下,我有一个 WCF Web 服务,用于添加对银行卡执行的操作。问题是在 WS 上传递大约 30 个不同的参数。

在 WCF 上这很容易做到,使用所有这些参数调用 RPC。

问题是我想将此 WCF WS 切换为带有 ServiceStack 的 REST API。

我遇到的问题是,如果我尝试使用 REST 创建操作并通过“查询字符串”传递参数,我有一个字符串是 AWFUL 用于读取和非常非常长(?amount=1234&operationID=12&等等)。

我知道这种做法不好,因为它不是面向资源的,但这是否意味着我应该将该项目的创建分成几个步骤(我的意思是,首先使用 POST 创建,然后使用多个帖子添加新的信息/字段?) .

在这种情况下,我无法清楚地看到 REST 的好处。

4

2 回答 2

1

如果您在查询字符串中传递这些参数,我假设您正在执行 HTTP GET。在 REST API 中,GET 通常保留用于取回数据,您传入的唯一参数是过滤结果。如果您正在执行更改系统状态的操作,您希望执行 POST 或 PUT 并将消息正文中的数据作为 XML 或 JSON 传递,而不是在查询字符串中传递。

REST 的好处是,如果您将此 API 开放给其他人,因为它使其更易于移植到异构系统,并且有一些性能优势。它还会打开您的 API 以供客户端(例如 Web 浏览器)使用。但是,如果此 API 仅供内部使用,而不是在浏览器中运行的 .NET 应用程序,那么您可能希望坚持使用 WCF。REST 并不是所有问题的答案。

于 2013-01-09T21:33:46.750 回答
0

I am not sure to understand your question... REST doesn't mean "no payload". On the contrary, REST means "representational state transfer", so the body of HTTP requests (aka "representational state") is essential.

For a lot of reasons, in the case of a bank, resources are usually bank operations. CouchDB's guide has a very nice scenario about that.

In other words, your "parameters" would be the attributes of the resource representation (in JSON, XML or what you want) you would GET, POST, PUT or DELETE.

于 2013-01-09T21:22:57.700 回答