在正常的Web服务和REST Web服务中获取操作差异

时间:2013-03-12 13:48:53

标签: c# asp.net web-services rest

我对正常和REST Web服务的GET操作有疑问。我知道REST服务基于HTTP VERBS。因此,对于一个实体,如果有几种GET方法,它将如何区分。

以下是基本服务的示例

public class CustomerService
{
  public List<Customer> GetCustomers()
  {
     //returns all customers
  }

  public List<Customer> GetCustomersWhoHaveOrdersAndOtherFilterCriteria(int orderid,string name)
  {
     //returns filtered customers
  }
} 

如果是普通的Web服务,可以通过CustomerService / GetCustomers或CustomerService / GetCustomersWhoHaveOrdersAndOtherFilterCriteria / 23来调用它,但是如果有REST Web服务,我认为应该有一个GET操作。

2 个答案:

答案 0 :(得分:1)

1)在“普通”Web服务中 - 如果您的意思是SOAP,您从不使用GET - 所有请求都包含在POST中

2)REST URL应包含对资源的引用 - 例如客户不要操作,因此http方法GET的结果URL可能是CustomerService/Customers

3)对于orderid和name参数,有更多选项:

CustomerService/Customers/orderid/123/name/MyName001
CustomerService/Customers?orderid=123&name=MyName001

以及更多

答案 1 :(得分:0)

你是对的Rest services are based on HTTP verbs。但还有一件事是Rest services are basically Resource based and Resources are nothing but the Url. 所以你可以做的是你可以创建不同的uri模板来访问不同的服务

CustomerApi/Customer --  HTTP GET -- GET All Customers
CustomerApi/Customer/FilterID -- HTTP GET -- Get filter customer