SORU
13 ŞUBAT 2014, PERŞEMBE


Neden HttpResponseMessage yerine İHttpActionResult kullanmalıyım?

WebApi ile gelişmekte olan ve Microsoft HttpResponseMessage dönen üzerinde kullanılması tavsiye gibi görünüyor IHttpActionResult yeni bir Arayüz tanıttı nerede WebApi2 taşındı. Bu yeni Arayüz avantajları hakkında kafam karıştı. Başta sadece bir sağlamak gibi görünüyorBİRAZdaha kolay.

Bu olduğunu öne yapmak istiyorum "soyutlama uğruna soyutlama". Bir şey mi kaçırdım? Gerçek dünya belki bir kod satırı kaydetme ayrıca bu yeni Arayüz kullanarak aldığım avantajları nelerdir?

Eski yol(WebApi):

public HttpResponseMessage Delete(int id)
{
    var status = _Repository.DeleteCustomer(id);
    if (status)
    {
        return new HttpResponseMessage(HttpStatusCode.OK);
    }
    else
    {
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }
}

Yeni Bir Yol(WebApi2):

public IHttpActionResult Delete(int id)
{
    var status = _Repository.DeleteCustomer(id);
    if (status)
    {
        //return new HttpResponseMessage(HttpStatusCode.OK);
        return Ok();
    }
    else
    {
        //throw new HttpResponseException(HttpStatusCode.NotFound);
        return NotFound();
    }
}

CEVAP
21 NİSAN 2014, PAZARTESİ


Varolan kodunuzu konserve tepkilerden biri uymuyor HttpResponseMessage oluşturur, çünkü IHttpActionResult kullanmamaya karar verebilirsiniz. Ancak IHttpActionResult HttpResponseMessage ResponseMessage konserve yanıt kullanarak uyarlayabilirsiniz. Öyle olmadığını gösteren göndermek istedim o yüzden beni bir süre bu şekil, necesarily veya başka bir seçim var:

public IHttpActionResult SomeAction()
{
   IHttpActionResult response;
   //we want a 303 with the ability to set location
   HttpResponseMessage responseMsg = new HttpResponseMessage(HttpStatusCode.RedirectMethod);
   responseMsg.Headers.Location = new Uri("http://customLocation.blah");
   response = ResponseMessage(responseMsg);
   return response;
}

Not denetleyicisi gereken temel sınıf ApiController yöntemidir devralır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010