Neden HttpResponseMessage yerine İHttpActionResult kullanmalıyım? | Netgez.com
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

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • MatheusDosGames

    MatheusDosGa

    28 Aralık 2011
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006