2012-11-06 70 views
0

我如何存取權限我在我的WebAPI的方法,當有多個GET,POST和刪除我的控制檯應用程序,方法我如何區分它們,這是我的API控制器如何從控制檯應用程序訪問Web API中的不同方法?

  public IQueryable<Store> GetAll() 
    {      
     return StoreRepository.All; 
    } 
    //GetAll Stores including all relation tables 
    public IQueryable<Store> GetAllIncluding() 
    {     
     return StoreRepository.AllIncluding(); 
    } 

    //Get store by id/id=5 
    public Store Find(long storeid) 
    { 
     stores = StoreRepository.Find(storeid); 
     return stores; 
    } 

    //Insert or Update Store 
    public void InsertorUpdateWithGraph(Store store) 
    { 
     StoreRepository.InsertOrUpdateWithGraph(store); 
    } 

    //Insert or Update StoreDetail 
    public void InsertOrUpdateStoreDetail(StoreDetail storedetail) 
    { 
     StoreRepository.InsertOrUpdateStoreDetail(storedetail); 
    } 

    //Get StoreDetail by id/id=5 
    public StoreDetail FindStoreDetail(long storedetailid) 
    { 
     storedetail = StoreRepository.FindStoreDetail(storedetailid); 
     return storedetail; 
    } 

    public List<StoreDetail> GetAllStoreDetails(long storedetailid) 
    { 
     List<StoreDetail> storedetails = StoreRepository.GetAllStoreDetails(storedetailid); 
     return storedetails; 
    } 
     public Sage FindSage(long sageid) 
    { 
     return StoreRepository.FindSage(sageid); 
    } 

喜歡我可能有不止兩個獲取,發佈,插入或更新方法我必須從我的控制檯應用程序訪問此方法我如何映射我想要的方法,cana任何一個幫助我在這裏如何定義此路線

回答

1

您可以有多個「Get ...」操作,因爲它們以「Get」開頭,所以您可以不用HttpGet屬性。 「查找...」方法需要使用HttpGet 修飾那些「插入...」,您需要使用HttpPostHttpPut屬性進行修飾。 這些方法的參數可以通過兩種方式配置。你可以像{id:"ddd",name:"nnn"} Post對象的行動像

MyAction(int id, string name) 

的Web API框架威脅與啓動後的任何方法......,刪除...,獲取......,把......作爲相應的HTTP動詞。但是你可以用你的方式命名它們,然後用Http屬性來裝飾。

說到參數,它是關於您的控制器操作與路線的關聯。

而現在,從控制檯應用程序運行它,你可以使用HttpClient

 string _webSiteUrl = "www.ffsdfds.com" 
    HttpClient client = new HttpClient(); 
    client.BaseAddress = new Uri(_webSiteUrl); 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // for posting 
    HttpResponseMessage resp = httpClient.GetAsync("/api/area/getall").Result; 
相關問題