質問

このような2つの方法があります

public class ProductController : ApiController
{
    public Product GetProductById(int id)
    {
        var product = ... //get product
        return product;
    }

    public Product GetProduct(int id)
    {
        var product = ... //get product
        return product;
    }
}

URLを呼び出すとき:get http:// localhost/api/product/1 。 2番目の方法ではなく、最初の方法が呼び出されたいです。
どうやってやるの ?

役に立ちましたか?

解決

ユニークなウリが必要です。ルートを変更してこれを取得できます。

routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = RouteParameter.Optional }

);

これで、このようにAPIにアクセスできます。

http:// localhost/api/product/getProductbyid/1

http:// localhost/api/product/getProduct/1

少し書きました ASP.NET Web APIの紹介 これは、WCF Web APIの違いのいくつかを示しています。

また、デフォルトのアクションを追加することもできます。たとえば、すべての製品をリストして、次のようなことを行うことができます。

http://localhost/api/product/  // returns the list without specifying the method

もう1つはこのように呼び出されます

http://localhost/api/product/byid/1  // returns the list without specifying the method

私がしていることは、ProductsControllerとProductControllerを持っていることです。 ProductsControllerはT(Get All)の収集の操作を担当し、ProductControllerはT(特定のものを取得するなど)の操作を担当します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top