मूल रूप से, एक Web APIनियंत्रक एक MVCनियंत्रक होता है, जो HttpMessageResponseआधार प्रतिक्रिया के आधार प्रकार के बजाय उपयोग करता है ActionResponse। अधिकांश अन्य मामलों में वे समान हैं। प्रोजेक्ट प्रकारों के बीच मुख्य अंतर यह है कि MVC Applicationप्रोजेक्ट प्रकार वेब विशिष्ट चीज़ों को जोड़ता है जैसे कि डिफ़ॉल्ट CSS, JavaScriptफ़ाइलें और वेब साइट के लिए आवश्यक अन्य संसाधन, जिन्हें एपीआई की आवश्यकता नहीं होती है।
MVC का उपयोग वेब साइट्स बनाने के लिए किया जाता है। इस मामले में Controllersआमतौर पर Viewब्राउज़र अनुरोधों के लिए (यानी HTML प्रतिक्रिया) लौटाते हैं। दूसरी ओर वेब एपीआई आमतौर पर अन्य अनुप्रयोगों द्वारा खपत की जाती है। यदि आप अन्य एप्लिकेशन को अपने डेटा / कार्यक्षमता तक पहुंचने की अनुमति देना चाहते हैं, तो आप इस एक्सेस को सुविधाजनक बनाने के लिए एक वेब एपीआई बना सकते हैं। उदाहरण के लिए, फेसबुक के पास ऐप का उपयोग करने वाले उपयोगकर्ताओं के बारे में जानकारी का उपयोग करने के लिए ऐप डेवलपर्स को अनुमति देने के लिए एपीआई है। सार्वजनिक उपभोग के लिए वेब एपीआई का होना जरूरी नहीं है। आप अपने स्वयं के अनुप्रयोगों का समर्थन करने के लिए एक एपीआई भी बना सकते हैं। उदाहरण के लिए, हमने अपनी MVC वेब साइट की AJAX कार्यक्षमता का समर्थन करने के लिए एक वेब एपीआई बनाया।
Microsoft ने विभिन्न टेम्पलेटों को प्रस्तुत करने के तरीके को बदल दिया। अब वे अलग-अलग प्रोजेक्ट प्रकारों के लिए अलग-अलग टेम्प्लेट का उपयोग करने के बजाय, डेवलपर्स को आवश्यकतानुसार उसी प्रोजेक्ट के अंदर ASP.NET तकनीकों का मिश्रण करने के लिए प्रोत्साहित करते हैं। Microsoft यह कहता है vNext।
अद्यतन: ASP.NET कोर के लिए, वेब एपीआई को MVC 6 परियोजना प्रकार में एकीकृत किया गया है और ApiControllerवर्ग को कक्षा में समेकित किया गया है Controller। आगे का विवरण: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6