ASP.Net MVC4'te “Web API” tam olarak nedir?


15

Web API'sının ne olduğunu biliyorum.
API'leri birden çok dilde yazdım (MVC3 dahil).
Ayrıca ASP.Net de iyi çalışıyorum.
Ben sadece MVC4 "Web API" olduğunu keşfettim ve video örnekleri geçmeden tam olarak ne olduğunu iyi bir açıklama bulamıyorum.
Geçmiş deneyimlerime göre, Microsoft teknolojileri (özellikle ASP.Net), basit bir kavram alma ve her şeyi daha kolay hale getirme amaçlı bir sürü gereksiz yüke sarma eğilimindedir.
Birisi bana MVC4 Web API tam olarak ne olduğunu açıklayabilir misiniz? Neden ihtiyacım var? Neden kendi API'mı yazamıyorum?


3
Yeni Web API çerçevesinden mi bahsediyorsunuz ? MVC'den ayrı. Demek istediğin buysa, Rick Strahl'in bu blog gönderisine bir göz at .
Oded

1
@Oded: Bunu bir cevap olarak koymalısınız.
James P. Wright

Web API ile ilgili en havalı şey (kabul edilen cevapta veya yukarıdaki bağlantıda herhangi bir yerde listelenmediğini görüyorum), bir IQueryable <> döndürürseniz, web yöntemleriniz otomatik olarak OData sorgu sözdizimini destekliyor! - Genel ASP.NET 4.5 Yığını "Web API" ve "SignalR" WCF "yerine" (WCF üzerine inşa edilip edilmediğinden emin değilim, ancak WCF tüm blok diyagramlarından kaldırıldı ve değiştirildi "Web API" ve "SignalR" ile).
BrainSlugs83

Why can't I just write my own API?Sadece normal ASP.NET MVC ile mi? Yapabilirsin. ASP.NET MVC Web API sadece kolaylaştırmak için size ekstra hediyeler verir. Lütfen aşağıya bakın.
Jim G.

Yanıtlar:


16

ASP.NET Web API, REST veya RPC'den bağımsız olarak HTTP Hizmeti oluşturmak için "düşüncesiz" bir çerçevedir . Microsoft'un en iyi RFC 2616 (HTTP Spec) uygulamasıdır.

Kesinlikle kendi API'nizi ancak ASP.NET Web API'nizi oluşturabilirsiniz:

  • HTTP boru hattına lego benzeri modüllerin eklenmesine izin veren Rus Bebek modeli temel alınarak oluşturulmuştur
  • HTTP birinci sınıf vatandaşı yapar, böylece tüm ortak başlıklar güçlü bir şekilde yazılır (yalnızca ad değeri değil) ve ayrıştırılmasına yardımcı olur
  • Hem ASP.NET (IIS) barındırmasına hem de kendi kendine barındırmaya izin verir
  • içerik anlaşmasını, medya türlerini, ...
  • Async yukarıdan aşağıya mı
  • HttpClient'e sahip müşteriler için benzer bir yaklaşım kullanır

6

Microsoft'un yeni Web API'sı , adının REST'te bükülmüş olarak web'e erişilebilen API'leri yazma hakkında her şeyi önerdiği gibi.

Rick Strahl kısa süre önce bu konuda blog yazdı ve MVC ile Web API'nin ne zaman kullanılacağı konusunda iyi bir analiz yaptı.

Yerleşik içerik anlaşması, çeşitli yerleşik biçimler ve daha fazlası gibi şeyler.


6

Kısaca: ASP.NET Web API, REST'i .NET'te WCF'nin gerçekten kucaklayamadığı birinci sınıf bir vatandaş haline getiriyor . Bildiğiniz gibi ASP.NET Web API bir çerçevedirfor building web APIs .NET Framework'ün üstünde .

Web geliştiricileri olarak yaşadığımız en büyük hayal kırıklığından biri, WCF ile sonsuz yapılandırmalarla karşılaşmaktı. Demek istediğim, WCF harika ama WCF Web API çerçevesinden beri REST'i benimsemiş değil . REST Başlangıç ​​Kiti denilen bir şey vardı, ama öldü.

Ancak, ASP.NET Web API, tarayıcılar ve mobil cihazlar gibi çok çeşitli istemcilere ulaşan HTTP hizmetleri oluşturmayı kolaylaştıran yeni nesil bir çerçevedir. .NET Framework üzerinde RESTful uygulamaları oluşturmak için ideal bir platformdur. Daha fazla bilgi ve harika blog gönderileri için ASP.NET Web API blogcular sayfasını ziyaret edin


1
Web API'nın geçmişini araştırırsanız, WCF'de başladı.
SASS_Shooter

Yapılandırmayı kolaylaştırmak ve uygulama geliştirmeyi kolaylaştırmak için önemli özelliklerle hafif bir şekilde değiştirilmesidir.
Yusubov

@Yusobov: Bu tam olarak doğru değil - Odata uyumlu REST apislerini oluşturmada oldukça iyi olan WCF Veri Hizmetleri de var. Bir üretim ortamında kullanıyorum ve kurulduktan sonra gerçekten iyi çalışıyor. Bununla ilgili tek sorun, bir ASP.NET Web API'sinden daha zor ayarlanmasıdır.
Adrian Grigore

1

ASP.NET Web API, tarayıcılar ve mobil cihazlar da dahil olmak üzere çok çeşitli istemcilere ulaşan HTTP hizmetleri oluşturmayı kolaylaştıran bir çerçevedir.

ASP.NET Web API, .NET Framework üzerinde RESTful uygulamaları oluşturmak için ideal bir platformdur.

http://www.asp.net/web-api


DÜZENLE:

Özellikle, ASP.NET Web API aşağıdakileri içerir:

  1. IIS'de hizmetinizi barındırmayı seçerseniz, ek yükü azaltılmış, kolaylaştırılmış bir ASP.NET kanal
  2. HttpClient , bir istemcinin Web API'sine bağlanmasını kolaylaştırır.

Bunları kendim okuyabilirim. Benim sorum ne demek? Web API ve normal MVC kullanma, ancak ViewResults yerine JsonResults'a sahip olmanın farkı nedir?
James P. Wright

1. MVC 4'ten önce JSONResult'u herhangi bir sorun olmadan iade edebilirsiniz. MVC 4, bu özelliği korur, daha kolay hale getirmek için diğer yardımcı sınıfları içerir ve ViewResults'u döndürmeniz gerekmediğini bildiğinizde yükü azaltmak için ASP.NET boru hattını düzene sokar.
Jim

1
Ayrıca, WCF Web API için etkili bir güncelleme olduğu için IIS'ye bağlı değilsiniz. İsterseniz bir ASP.NET Web API hizmetini kendiniz de barındırabilirsiniz. wcf.codeplex.com/…
Jim G.

-2

Bugün, web tabanlı bir uygulama müşterilerine ulaşmak için yeterli değil. İnsanlar çok akıllı, günlük yaşamlarında iphone, mobil, tablet vb. Cihazları kullanıyorlar. Bu cihazlar ayrıca hayatı kolaylaştırmak için birçok uygulamaya sahiptir. Aslında, web'den uygulamalar dünyasına doğru ilerliyoruz. Bu nedenle, hizmet verilerinizi tarayıcılara ve tüm bu modern cihaz uygulamalarına hızlı ve basit bir şekilde göstermek istiyorsanız, tarayıcılarla ve tüm bu cihazlarla uyumlu bir API'nız olmalıdır.


Bu, önceki 4
cevapta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.