0

当我的控制台应用程序中有多个获取、发布和删除方法时,我如何在我的 webapi 中访问我的方法,我如何区分它们这是我的 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);
    }

像这样我可能有两个以上的获取、发布、插入或更新方法我必须从我的控制台应用程序访问这些方法我如何映射我想要的方法,可以在这里帮助我如何定义路由

4

1 回答 1

1

您可以有多个“获取...”操作,并且您可以在没有属性的情况下逃脱,HttpGet因为它们以“获取”开头。“查找...”方法需要用HttpGet 那些“插入...”来装饰,你需要用HttpPostHttpPut属性来装饰。这些方法的参数可以通过两种方式进行配置。您可以像 POST 对象一样{id:"ddd",name:"nnn"}执行操作

MyAction(int id, string name) 

Web APi 框架威胁任何以 Post...、Delete...、Get...、Put... 开头的方法作为相应的 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;
于 2012-11-08T22:46:09.500 回答