ServiceStack,REST和多个参数

时间:2013-01-09 20:28:19

标签: rest servicestack

我对REST有一个疑问。

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

在WCF上,使用所有这些参数调用RPC非常容易。

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

我遇到的问题是,如果我尝试使用REST创建操作并通过'querystring'传递参数,我有一个AWFUL用于阅读的字符串,并且非常非常长(?amount=1234&operationID=12&等)。< / p>

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我不确定你理解你的问题...... REST并不意味着“没有负载”。相反,REST意味着“代表性状态转移”,因此HTTP请求(也称为“代表性状态”)的主体是必不可少的。

由于很多原因,就银行而言,资源通常是银行业务。 CouchDB的指南非常好scenario about that

换句话说,你的“参数”将是你要GET,POST,PUT或DELETE的资源表示的属性(用JSON,XML或你想要的)。