当尝试执行POST请求Delete(SourceInfo sourceInfo)
而不是Post(SourceInfo sourceInfo)
时,如果我删除Delete(SourceInfo sourceInfo)
,则在执行POST请求时执行Put(SourceInfo sourceInfo)
。我很确定我做错了什么,但我无法弄清楚它是什么。
使用IPlugin
界面来确定路由。
public void Register(IAppHost appHost)
{
appHost.Routes.Add<SourceInfo>("/sources", "GET,POST,PUT");
appHost.Routes.Add<SourceInfo>("/sources/{Name}", "GET,DELETE");
}
服务看起来像这样
public class SourceService : ServiceStack.ServiceInterface.Service
{
public SourceInfoResponse Get(SourceInfo sourceInfo)
{ ... }
public bool Post(SourceInfo source)
{ ... }
public bool Put(SourceInfo source)
{ ... }
public bool Delete(SourceInfo source)
{ ... }
}
我在这里查看了新api设计的路由描述:https://github.com/ServiceStack/ServiceStack/wiki/New-API,但在这种情况下看起来不适用。
答案 0 :(得分:1)
所以我发现了,事实证明返回bool
不起作用。当我将返回类型更改为object
时,它立即起作用。
public class SourceService : ServiceStack.ServiceInterface.Service
{
public SourceInfoResponse Get(SourceInfo sourceInfo)
{ ... }
public object Post(SourceInfo source)
{ ... }
public object Put(SourceInfo source)
{ ... }
public object Delete(SourceInfo source)
{ ... }
}
它也可以返回自定义类。