我对正常和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操作。
答案 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