Search code examples
restasp.net-web-apiasp.net-web-api2hateoas

WebApi 2 POST result for Edit operation


In my WebApi 2 service i have a controller which allows to edit member data.

    [Authorize]
    [HttpPost]
    [Route("Members/Member")]
    public async Task<IHttpActionResult> EditMember([FromBody] Member editedMember)
    {
        var member = await _membersRepository.GetMembersById(editedMember.MemberId);

        if (member == null)
        {
            return NotFound();
        }

        member = await _membersRepository.EditMember(editedMember);

        Uri locationHeader = new Uri(Url.Link("MemberById", new { id = editedMember.MemberId }));

        return Ok();
    }

According to HATEOAS i should return an URI of the resource i POSTed to. I would think that the correct result if everything went well is OK. But it does not allow to include the URI in it.

What am I doing wrong?


Solution

  • All you need to do is this:

    return Ok( new { locationHeader });