簡體   English   中英

找不到OData操作端點

[英]OData Action Endpoint not found

我正在嘗試將我的api鏈接到braintree付款系統。 我正在使用OData,但是我在端點的路由方面苦苦掙扎。 我不斷收到404:

找不到與請求URI'http:// localhost:34403 / odata / GetPlans '匹配的HTTP資源。

這是我在WebApiConfig類中注冊路由的地方:

var GetPlans = builder.Action("GetPlans");

除了動作外,我還應該使用其他東西嗎? 也許還別的東西?

這是我嘗試達到的端點:

    [HttpGet]
    [ODataRoute("GetPlans")]
    public IHttpActionResult getPlans()
    {
        var gateway = new BraintreeGateway
        {
            Environment = Braintree.Environment.SANDBOX,
            MerchantId = merchId,
            PublicKey = pubKey,
            PrivateKey = privKey
        };

        List<Plan> plans = gateway.Plan.All();

        return Ok(plans);

    }

操作需要POST http動詞,但是方法上具有HttpGet屬性,將其更改為POST,並確保在調用方法時使用POST動詞。 另外,您可以將其更改為使用GET的函數,而需要在構建器上使用Function方法,如下所示:

var GetPlans = builder.Function("GetPlans");

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/odata-actions-and-functions中的動作和功能之間的差異的簡要概述

函數是沒有副作用的操作,可能支持進一步的編寫並且必須具有返回類型。

動作是允許副作用(例如數據修改)的操作,並且為了避免非確定性行為,無法進行進一步組合。

操作需要POST操作,因為它們可能會有副作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM