2013-03-12 153 views
0

我對GET正常和REST Web服務的操作有疑問。我瞭解REST服務基於HTTP VERBS。所以,對於一個實體,如果有幾個GET方法,它將如何區分。GET正常Web服務和REST Web服務的操作差異

下面是基本服務

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

你說得對,就像你說的那樣Rest services are based on HTTP verbs。但有一件事是Rest services are basically Resource based and Resources are nothing but the Url.
所以你可以做的是,你可以訪問不同的服務

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

1)在「正常」的Web服務創建不同的URI模板 - 如果你的意思是SOAP你永遠不會使用GET - 所有請求都包含在POST中

2)REST Url應包含對資源的引用 - 例如客戶不操作,結果URL可以是CustomerService/Customers用於HTTP GET方法

3)訂單ID和名稱參數有更多的選擇:

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