c# - किसी मौजूदा एएसपी.नेट एमवीसी (5) वेब अनुप्रयोग प्रोजेक्ट में वेब एपीआई कैसे जोड़ें?




1 Answers

एमवीसी परियोजना अद्यतन करें

नवीनतम वेब एपीआई प्राप्त करने के लिए Nuget का उपयोग करें।

प्रोजेक्ट - राइट क्लिक करें - Nuget पैकेज प्रबंधित करें - वेब एपीआई (माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई ...) के लिए खोजें और इसे अपने एमवीसी प्रोजेक्ट में इंस्टॉल करें।

फिर भी आपको काम करने के लिए वेब एपीआई रूटिंग प्राप्त करने की आवश्यकता है। माइक्रोसॉफ्ट के एएसपी.NET वेब एपीआई 2 कॉन्फ़िगर करने से

AppAStart / फ़ोल्डर में WebApiConfig.cs जोड़ें

using System.Web.Http;

namespace WebApplication1
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // TODO: Add any additional configuration code.

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

        // WebAPI when dealing with JSON & JavaScript!
        // Setup json serialization to serialize classes to camel (std. Json format)
        var formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
        formatter.SerializerSettings.ContractResolver =
            new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
        }
    }
}

यदि आपके पास एक एमवीसी प्रोजेक्ट है तो इसमें Global.asax.cs होगा, नए मार्ग जोड़ें। Global.asax.cs मार्गों का आदेश महत्वपूर्ण है। ध्यान दें कि पुराने उदाहरण हैं जो WebApiConfig.Register उपयोग करते हैं

Global.asax.cs पर यह लाइन जोड़ें: GlobalConfiguration.Configure(WebApiConfig.Register);

protected void Application_Start()
{
    // Default stuff
    AreaRegistration.RegisterAllAreas();

    // Manually installed WebAPI 2.2 after making an MVC project.
    GlobalConfiguration.Configure(WebApiConfig.Register); // NEW way
    //WebApiConfig.Register(GlobalConfiguration.Configuration); // DEPRECATED

    // Default stuff
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

वेबएपीआई सहायता

( बहुत ) उपयोगी वेबएपीआई पृष्ठों की सहायता करने के लिए, WebAPI.HelpPage इंस्टॉल करें। यह क्या करता है http://channel9.msdn.com/Events/Build/2014/3-644 (~ 42 मिनट में) देखें। यह बहुत उपयोगी लग रहा है!

Nuget कंसोल: Install-Package Microsoft.AspNet.WebApi.HelpPage

वेबएपीआई को सत्यापित करने के लिए काम कर रहा है:

नियंत्रक फ़ोल्डर में -> नया आइटम जोड़ें -> वेब एपीआई नियंत्रक कक्षा।

public class TestController : ApiController
{
    //public TestController() { }

    // GET api/<controller>
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/<controller>/5
    public string Get(int id)
    {
        return "value";
    }
    //...
}

अब आप सामान्य रूप से आईई / एफएफ / क्रोम में परीक्षण कर सकते हैं, या गैर-परीक्षण के लिए जावास्क्रिप्ट कंसोल में परीक्षण कर सकते हैं।

(यूआरएल में केवल नियंत्रक के साथ यह नए वेब एपीआई कंट्रोलर में जीईटी () एक्शन को कॉल करेगा, यह स्वचालित रूप से आरईएसटी जैसे पुट / पोस्ट / जीईटी / डिलीट के आधार पर विधियों / कार्यों के लिए मैप किया गया है। आपको कॉल करने की आवश्यकता नहीं है उन्हें एमवीसी की तरह कार्रवाई द्वारा) यूआरएल सीधे:

http://localhost:PORT/api/CONTROLLERNAME/

वैकल्पिक रूप से नियंत्रक से पूछने के लिए jQuery का उपयोग करें। प्रोजेक्ट चलाएं, कंसोल खोलें (आईई में एफ 12) और अजाक्स क्वेरी चलाने का प्रयास करें। (अपने पोर्ट और CONTROLLERNAME की जांच करें)

$.get( "http://localhost:PORT/api/CONTROLLERNAME/", function( data ) {
    //$( ".result" ).html( data );
    alert( "Get data received:" + data);
});

साइड नोट: किसी प्रोजेक्ट में एमवीसी और वेब एपीआई के संयोजन के दौरान विचार करने के लिए कुछ पेशेवर / विपक्ष हैं

वेबएपीआई सहायता सत्यापन: http://localhost:PORT/help

मान लीजिए कि आप एक नई एमवीसी (5) प्रोजेक्ट बनाते समय वेब एपीआई चेकबॉक्स (इसे प्रोजेक्ट में जोड़ें) पर टिकटें भूल गए हैं, आपको वेब एपीआई जोड़ने और इसे काम करने की क्या ज़रूरत है?

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

एमवीसी 4 में वेब एपीआई जोड़ें

GlobalConfiguration जोड़ना। कॉन्फ़िगर (WebApiConfig.Register) एमवीसी 4




Related