我在 .net 服务中使用 OpenRasta 框架,并且在处理程序中有如下方法
public OperationResult Delete(int Id)
{
// Do some operation and get an entity
return new OperationResult.OK(MyResource);
}
我的配置如下所示:
ResourceSpace.Has.ResourcesOfType<MyResource>()
.AtUri("/MyResource/{Id}")
.And.AtUri("/MyResource")
.HandledBy<MyResourceHandler>()
.AsJsonDataContract().ForMediaType("application/json")
.And.AsXmlDataContract().ForMediaType("application/xml");
我的要求如下
HttpMethod: DELETE
AcceptHeader: "application/xml"
URI: http://localhost/MyResource/a
请注意资源参数:删除方法接受整数,而我正在传递一个字符。
有了这个请求,我希望得到 404 状态代码,而不是 405 Method not allowed。任何人都可以解释这种行为,为什么它返回 405?
如果我在 URI 中给出不正确的资源名称,它会返回 404。例如:URI:http://localhost/OtherResource/a
更新:我正在使用 OpenRasta 的 InMemoryHost 进行测试,并且支持删除方法