C# 找不到OData操作终结点
我正在尝试将我的api链接到braintree支付系统。我正在使用OData,但我正在努力解决端点的路由问题。我一直得到一个404: 未找到与请求URI“”匹配的HTTP资源 以下是我在WebApiConfig类中注册路由的位置:C# 找不到OData操作终结点,c#,odata,asp.net-web-api2,C#,Odata,Asp.net Web Api2,我正在尝试将我的api链接到braintree支付系统。我正在使用OData,但我正在努力解决端点的路由问题。我一直得到一个404: 未找到与请求URI“”匹配的HTTP资源 以下是我在WebApiConfig类中注册路由的位置: var GetPlans = builder.Action("GetPlans"); 除了行动,我还应该用别的东西吗?也许还点别的 以下是我试图达到的终点: [HttpGet] [ODataRoute("GetPlans")] public
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);
}
[HttpGet]
[ODataRoute(“GetPlans”)]
公共IHttpActionResult getPlans()
{
var网关=新的BraintreeGateway
{
环境=Braintree.Environment.SANDBOX,
MerchantId=merchId,
PublicKey=PublicKey,
私钥
};
列表计划=gateway.Plan.All();
返回Ok(计划);
}
操作需要POST http谓词,但您的方法上有HttpGet
属性,请将其更改为POST谓词,并确保在调用该方法时使用POST谓词。或者,您可以将其更改为使用GET的函数,您需要在生成器上使用函数
方法,如下所示:
var GetPlans = builder.Function("GetPlans");
从中快速总结操作和函数之间的差异
功能是没有副作用的操作,可能支持
进一步合成,必须有返回类型
操作是允许产生副作用的操作,例如数据
修改,并且不能为了避免
非确定性行为
操作需要POST操作,因为它们可能有副作用。您能解释为什么操作需要POST http动词吗?