Some Web API Url Samples

URI                               Verb     Description                                                                                    
 /api/tasks GET Gets the full list of all tasks;
optionally specify a filter                  
/api/tasks/123 GET Gets the details for a single task
/api/tasks/123/status GET Gets just the status information
for the specified task
/api/tasks/123/status/456 PUT Updates just the status of
the specified task
/api/tasks/123/users DELETE Deletes all users from the
specified task
/api/tasks POST Creates a new task

 

route map

config.Routes.MapHttpRoute(
name: "TaskStatusApiRoute",
routeTemplate: "api/tasks/{taskId}/status/{statusId}",
defaults: new {controller = "TaskStatus", statusId =
RouteParameter.Optional});


controller:

public class TaskStatusController : ApiController
{
private readonly ISession _session;
private readonly IStatusMapper _statusMapper;
private readonly IHttpStatusFetcher _statusFetcher;
private readonly IHttpTaskFetcher _taskFetcher;
public TaskStatusController(
IHttpTaskFetcher taskFetcher,
ISession session,
IStatusMapper statusMapper,
IHttpStatusFetcher statusFetcher)
{
_taskFetcher = taskFetcher;
_session = session;
_statusMapper = statusMapper;
_statusFetcher = statusFetcher;
}

public Status Get(long taskId) { var task = _taskFetcher.GetTask(taskId); return _statusMapper.CreateStatus(task.Status); }
public void Put(long taskId, long statusId) { var task = _taskFetcher.GetTask(taskId); var status = _statusFetcher.GetStatus(statusId); task.Status = status; _session.Save(task); } }

 

posted @ 2015-02-03 15:40  Master HaKu  阅读(178)  评论(0编辑  收藏  举报