Do you return a Resource URL?

Last updated by Brady Stroud [SSW] about 1 month ago.See history

When the Web API creates a resource, it should include the URI of the new resource in the Location header of the response.

public Product PostProduct(Product item)
 {
 item = repository.Add(item);
 return item;
 }

Figure: Bad example – The response does not contain a reference to the location of the new resource

public HttpResponseMessage PostProduct(Product item)

{

    item = repository.Add(item);

    var response = Request.CreateResponse(HttpStatusCode.Created, item);



    string uri = Url.Link("DefaultApi", new { id = item.Id });

    response.Headers.Location = new Uri(uri);

    return response;

}

Figure: Good example – The response message contains a link in the header to the created resource (plus the “Created” status code is returned)

Adam Stephensen
We open source. Powered by GitHub