【问题标题】:How to Access different methods in Web API from console Application?如何从控制台应用程序访问 Web API 中的不同方法?
【发布时间】:2013-04-05 19:21:05
【问题描述】:

当我的控制台应用程序中有多个 get、post 和 delete 方法时,我如何在我的 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);
    }

像这样我可能有两个以上的 get、post、insert 或 update 方法我必须从我的控制台应用程序访问这些方法我如何映射我想要的方法,可以在这里任何人帮助我我将如何定义路由为此

【问题讨论】:

    标签: asp.net-mvc-4 routing asp.net-web-api


    【解决方案1】:

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

    的操作
    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 2015-12-12
      相关资源
      最近更新 更多