ASP.Net MVC4 में "वेब एपीआई" वास्तव में क्या है?


15

मुझे पता है कि एक वेब एपीआई क्या है।
मैंने API को कई भाषाओं में (MVC3 सहित) लिखा है।
मैं ASP.Net में भी अच्छी तरह से अभ्यास कर रहा हूँ।
मुझे अभी पता चला है कि MVC4 में "वेब एपीआई" है और वीडियो उदाहरणों के माध्यम से जाने के बिना, मुझे वास्तव में यह क्या है, इसकी अच्छी व्याख्या नहीं मिल सकती है।
मेरे पिछले अनुभव से, Microsoft प्रौद्योगिकियों (विशेष रूप से ASP.Net) में एक सरल अवधारणा लेने और इसे बेकार ओवरहेड के एक समूह में लपेटने की प्रवृत्ति है जो सब कुछ "आसान" बनाने के लिए है।
क्या कोई मुझे बता सकता है कि MVC4 में Web API वास्तव में क्या है? मुझे इसकी ज़रूरत क्यों है? मैं सिर्फ अपना API क्यों नहीं लिख सकता?


3
क्या आप नए वेब एपीआई ढांचे के बारे में बात कर रहे हैं ? वह MVC से अलग है। अगर आपका यही मतलब है, तो रिक स्ट्राल के इस ब्लॉग पोस्ट पर एक नज़र डालें ।
Oded

1
@Oded: आपको इसे उत्तर के रूप में रखना चाहिए।
जेम्स पी। राइट

वेब एपीआई के बारे में सबसे अच्छी बात (जो मुझे स्वीकृत उत्तर या उपरोक्त लिंक में कहीं भी सूचीबद्ध नहीं दिखाई देती है) यह है कि यदि आप एक IQueryable लौटाते हैं <> आपके वेब तरीके स्वचालित रूप से OData क्वेरी सिंटैक्स का समर्थन करते हैं! - सामान्य में ASP.NET 4.5 स्टैक "वेब एपीआई" और "सिग्नलआर" को "डब्ल्यूसीएफ" प्रतिस्थापित किया जा रहा है (मैं अनिश्चित हूं कि क्या वे डब्ल्यूसीएफ के शीर्ष पर बने हैं या नहीं, लेकिन डब्ल्यूसीएफ को सभी ब्लॉक डायग्राम से हटा दिया गया है और प्रतिस्थापित कर दिया गया है "वेब एपीआई" और "सिग्नलआर") के साथ।
BrainSlugs83

Why can't I just write my own API?सिर्फ नियमित रूप से ASP.NET MVC के साथ? आप ऐसा कर सकते हैं। ASP.NET MVC वेब API आपको इसे आसान बनाने के लिए अतिरिक्त उपहार देता है। कृपया नीचे देखे।
जिम जी।

जवाबों:


16

ASP.NET वेब एपीआई REST या RPC की परवाह किए बिना HTTP सेवा के निर्माण के लिए एक "गैर-राय" ढांचा है । यह Microsoft का RFC 2616 (HTTP Spec) का सबसे अच्छा कार्यान्वयन है।

निश्चित रूप से आप अपना स्वयं का एपीआई लेकिन ASP.NET वेब एपीआई का निर्माण कर सकते हैं:

  • रूसी गुड़िया मॉडल के आधार पर निर्मित जो लेगो जैसे मॉड्यूल को HTTP पाइपलाइन में जोड़ा जा सकता है
  • HTTP को प्रथम श्रेणी का नागरिक बनाता है, इसलिए सभी सामान्य हेडर दृढ़ता से टाइप किए जाते हैं (केवल नाम मान नहीं) और उन्हें पार्स करने में मदद करता है
  • ASP.NET (IIS) होस्टिंग या स्व-होस्टिंग दोनों के लिए अनुमति देता है
  • सामग्री बातचीत, मीडिया प्रकारों का समर्थन करता है ...
  • ऊपर से नीचे तक Async है
  • HttpClient के साथ ग्राहकों के लिए एक समान दृष्टिकोण का उपयोग करता है

6

Microsoft से नया वेब एपीआई है, जैसा कि इसके नाम से पता चलता है कि एपीआई लिखने के बारे में सभी हैं, जो कि REST पर मुड़े हुए हैं।

रिक स्ट्राल ने हाल ही में इसके बारे में ब्लॉग किया है और एमवीसी बनाम वेब एपीआई का उपयोग करने के बारे में एक अच्छा विश्लेषण किया है।

सामग्री की बातचीत में निर्मित चीजें, कई स्वरूप में निर्मित और बहुत कुछ।


6

संक्षेप में: ASP.NET वेब एपीआई REST को .NET में प्रथम श्रेणी का नागरिक बना रहा है , जिसे WCF वास्तव में गले लगाने में सक्षम नहीं था। जैसा कि आप जानते होंगे कि ASP.NET Web APIfor building web APIs .NET फ्रेमवर्क के ऊपर एक फ्रेमवर्क है।

वेब डेवलपर्स के रूप में हमारे पास सबसे बड़ी निराशा में से एक डब्ल्यूसीएफ के साथ अंतहीन कॉन्फ़िगरेशन का सामना करना था। मेरा मतलब है, WCF महान है, लेकिन WCF वेब एपीआई ढांचे के बाद REST को गले नहीं लगाया गया है । REST स्टार्टर किट नाम की कोई चीज थी लेकिन यह मृत हो गई।

हालाँकि, ASP.NET वेब एपीआई एक अगली पीढ़ी का ढांचा है जो HTTP सेवाओं का निर्माण करना आसान बनाता है जो ग्राहकों की एक विस्तृत श्रृंखला तक पहुँचते हैं, जैसे कि ब्राउज़र और मोबाइल डिवाइस। यह .NET फ्रेमवर्क पर Restful अनुप्रयोगों के निर्माण के लिए एक आदर्श मंच है। अधिक जानकारी और महान ब्लॉग पोस्ट के लिए, ASP.NET वेब एपीआई ब्लॉगर्स पेज पर जाएँ


1
यदि आप वेब एपीआई के इतिहास पर शोध करते हैं, तो यह डब्ल्यूसीएफ में शुरू हुआ।
SASS_Shooter 18

ठीक है, यह कॉन्फ़िगरेशन को आसान बनाने और ऐप विकास को आसान बनाने के लिए महत्वपूर्ण विशेषताओं के साथ इसका एक हल्का प्रतिस्थापन है।
युसुबोव

@ युसोबोव: यह बिल्कुल सच नहीं है - डब्ल्यूसीएफ डेटा सेवाएँ भी हैं जो ओडटा-संगत आरईएस एपिस के निर्माण में काफी अच्छी हैं। मैं इसे प्रोडक्शन के माहौल में इस्तेमाल कर रहा हूं और यह सेट होने के बाद वास्तव में अच्छी तरह से काम करता है। इसके साथ एकमात्र समस्या यह है कि ASP.NET वेब API की तुलना में सेट करना बहुत कठिन है।
एड्रियन ग्रिगोर

1

ASP.NET वेब एपीआई एक ढांचा है जो HTTP सेवाओं का निर्माण करना आसान बनाता है जो ब्राउज़रों और मोबाइल उपकरणों सहित क्लाइंट की एक विस्तृत श्रृंखला तक पहुंचते हैं।

ASP.NET वेब एपीआई .NET फ्रेमवर्क पर Restful अनुप्रयोगों के निर्माण के लिए एक आदर्श मंच है।

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


संपादित करें:

विशेष रूप से, ASP.NET वेब एपीआई में शामिल हैं:

  1. यदि आप IIS में अपनी सेवा होस्ट करने के लिए चुनते हैं, तो कम ओवरहेड के साथ एक सुव्यवस्थित ASP.NET पाइपलाइन
  2. HttpClient जो क्लाइंट के लिए वेब एपीआई में हुक करना आसान बनाता है।

मैं खुद उन चीजों को पढ़ सकता हूं। मेरा सवाल यह है कि बिंदु क्या है? वेब एपीआई का उपयोग करने और नियमित MVC का उपयोग करने में बहुत भिन्नता है, लेकिन ViewResults के बजाय JsonResults होना?
जेम्स पी। राइट

1. MVC 4 से पहले, आप बिना किसी मुद्दे के JSONResult वापस कर सकते हैं। MVC 4 बस उस क्षमता को बरकरार रखता है, इसमें आसान बनाने के लिए कुछ अन्य सहायक वर्ग शामिल हैं, और ASP.NET पाइपलाइन को ओवरहेड को कम करने के लिए सुव्यवस्थित करता है जब आप जानते हैं कि आपको ViewResults को वापस करने की आवश्यकता नहीं होगी।
जिम जी।

1
इसके अलावा, क्योंकि यह WCF वेब एपीआई के लिए एक प्रभावी रूप से अपडेट है, तो आप IIS के लिए तैयार नहीं हैं। यदि आप चाहें तो आप एक ASP.NET वेब एपीआई सेवा की मेजबानी कर सकते हैं। wcf.codeplex.com/…
जिम जी।

-2

आज, वेब-आधारित एप्लिकेशन ग्राहकों तक पहुंचने के लिए पर्याप्त नहीं है। लोग बहुत स्मार्ट हैं, वे अपने दैनिक जीवन में iPhone, मोबाइल, टैबलेट आदि उपकरणों का उपयोग कर रहे हैं। इन उपकरणों में जीवन को आसान बनाने के लिए बहुत सारे ऐप हैं। दरअसल, हम वेब से ऐप्स वर्ल्ड की ओर बढ़ रहे हैं। इसलिए, यदि आप अपने सेवा डेटा को ब्राउज़र में और साथ ही साथ इन सभी आधुनिक उपकरणों के ऐप्स को तेज़ और सरल तरीके से उजागर करना पसंद करते हैं, तो आपके पास एक एपीआई होना चाहिए जो ब्राउज़र और इन सभी उपकरणों के साथ संगत हो।


इससे किए गए बिंदुओं पर पर्याप्त मात्रा में कुछ भी जोड़ना प्रतीत नहीं होता है और पहले के 4 उत्तरों में समझाया गया है
gnat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.