0

コンソール アプリケーションから複数の 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 メソッドが 2 つ以上ある可能性があります。コンソール アプリケーションからこのメソッドにアクセスする必要があります。必要なメソッドをマップするにはどうすればよいですか。このルートを定義するにはどうすればよいですか。

4

1 に答える 1

1

HttpGet複数の「Get...」アクションを持つことができ、「Get」で始まるため、属性なしで逃げることができます。「検索...」メソッドは、または属性HttpGet で装飾する必要がある「挿入...」で装飾する必要があります。これらのメソッドのパラメーターは、2 つの方法で構成できます。次のようなアクションにオブジェクトをPOSTできますHttpPostHttpPut{id:"ddd",name:"nnn"}

MyAction(int id, string name) 

Web API フレームワークは、対応する Http 動詞として Post...、Delete...、Get...、Put... で始まるすべてのメソッドを脅威にさらします。ただし、好きなように名前を付けて、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 に答える