Я использую каркас OpenRasta в сервисе .net, и у меня есть метод, описанный ниже в обработчике
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
Обратите внимание на параметр ресурса: метод delete принимает целое число, а я передаю символ.
С этим запросом я ожидал 404 кода состояния, вместо этого я получил 405 Метод не разрешен. Кто-нибудь может объяснить это поведение, почему оно возвращает 405?
Если я даю неверное имя ресурса в URI, он возвращает мне 404. Например: URI:http://localhost/OtherResource/a
Обновление : я тестирую это с использованием метода InMemoryHost и удаления OpenRasta.