, , , :
[Route("/resource", "GET")]
public class GetAllResources {}
[Route("/resource/{Id}", "GET")]
public class GetResource
{
public int? Id { get; set; }
}
[Route("/resource", "POST")]
public class CreateResource { ... }
[Route("/resource/{Id}", "PUT")]
public class UpdateResource
{
public int Id { get; set; }
...
}
[Route("/resource/{Id}", "DELETE")]
public class DeleteResource
{
public int Id { get; set; }
...
}
:
public class ResourceServices : Service
{
public object Get(GetResources request) { ... }
public object Get(GetResource request) { ... }
public object Post(CreateResource request) { ... }
public object Put(UpdateResource request) { ... }
public object Delete(DeleteResource request) { ... }
}
, , 404 NotFound, , .
, , :
[Route("/resource", "DELETE PUT")]
public class IllegalActions {}
public class ResourceServices : Service
{
public object Any(IllegalActions request)
{
return new HttpError(HttpStatusCode.NotAcceptable, "ActionNotSupported");
}
}
- Error, ServiceStack. # HTTP :
SetConfig(new HostConfig {
MapExceptionToStatusCode = {
{ typeof(NotImplementedException), (int)HttpStatusCode.NotAcceptable },
{ typeof(NotSupportedException), (int)HttpStatusCode.NotAcceptable },
}
});