Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें?

एक बार Web API सर्विस पब्लिक हो जाने के बाद, विभिन्न क्लाइंट एप्लिकेशन हमारी Web API सर्विसेज का उपयोग करना शुरू कर देते हैं। जैसे-जैसे व्यवसाय बढ़ता है और आवश्यकताएं बदलती हैं, हमें सर्विसेज को भी बदलना पड़ सकता है, लेकिन सर्विसेज में परिवर्तन इस तरह से किए जाने चाहिए कि कोई मौजूदा क्लाइंट एप्लिकेशन न टूटे।

यहीं पर Web API वर्जनिंग मदद करती है। हम मौजूदा सर्विसेज को वैसे ही रखते हैं, ताकि मौजूदा क्लाइंट एप्लिकेशन न टूटें, और सर्विस का एक नया वर्जन विकसित करते हैं जिसका नई क्लाइंट एप्लिकेशन उपयोग करना शुरू कर सकती हैं।

वर्जनिंग लागू करने के विकल्पों में से एक URI का उपयोग करना है। नीचे उसी को लागू करने का एक उदाहरण दिया गया है।

उदाहरण

आइए स्टूडेंट कंट्रोलर के वर्जन 1 (V1) पर विचार करें जिसमें निम्नलिखित एक्शन मेथड्स हैं।

Student Model V1

namespace DemoWebApplication.Models
{
    public class StudentV1
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

Student Controller V1

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace DemoWebApplication.Controllers
{
    public class StudentV1Controller : ApiController
    {
        List students = new List
        {
            new StudentV1 { Id = 1, Name = "Mark" },
            new StudentV1 { Id = 2, Name = "John" }
        };

        [Route("api/v1/students")]
        public IEnumerable Get()
        {
            return students;
        }

        [Route("api/v1/students/{id}")]
        public StudentV1 Get(int id)
        {
            var studentForId = students.FirstOrDefault(x => x.Id == id);
            return studentForId;
        }
    }
}

उपरोक्त उदाहरण में हमने वर्जनिंग लागू करने के लिए Attribute Routing का उपयोग किया है। उपरोक्त उदाहरण का आउटपुट नीचे दिखाया गया है:

C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें?

C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें?

अब मान लीजिए स्टूडेंट कंट्रोलर में, व्यवसाय ने केवल नए उपयोगकर्ताओं के लिए एक नया परिवर्तन प्रस्तावित किया है और मौजूदा उपयोगकर्ताओं को अभी भी वर्जन 1 का उपयोग करना चाहिए। इस मामले में हमें वर्जन 2 (V2) पेश करना होगा।

Student Model V2

namespace DemoWebApplication.Models
{
    public class StudentV2
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
}

Student Controller V2

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace DemoWebApplication.Controllers
{
    public class StudentV2Controller : ApiController
    {
        List students = new List
        {
            new StudentV2 { Id = 1, FirstName = "Roger", LastName = "Federer" },
            new StudentV2 { Id = 2, FirstName = "Tom", LastName = "Bruce" }
        };

        [Route("api/v2/students")]
        public IEnumerable Get()
        {
            return students;
        }

        [Route("api/v2/students/{id}")]
        public StudentV2 Get(int id)
        {
            var studentForId = students.FirstOrDefault(x => x.Id == id);
            return studentForId;
        }
    }
}

आउटपुट

उपरोक्त उदाहरण का आउटपुट नीचे दिखाया गया है।

C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें?

C# ASP.NET WebAPI में URI के साथ Web API वर्जनिंग कैसे करें?

  1. C# ASP.NET WebAPI में CORS समस्या कैसे हल करें? C# ASP.NET WebAPI में CORS समस्या कैसे हल करें?

    क्रॉस-ओरिजिन रिसोर्स शेयरिंग (CORS) एक ऐसा तंत्र है जो ब्राउज़रों को यह बताने के लिए अतिरिक्त HTTP हेडर्स का उपयोग करता है कि एक ओरिजिन पर चल रहे वेब एप्लिकेशन को किसी अलग ओरिजिन से चुनिंदा रिसोर्सेज तक पहुंच दी जाए। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिन HTTP रिक्वेस्ट निष्पादित करता है जब वह किसी ऐसे रि

  1. C# ASP.NET WebAPI में एक्शन मेथड से कस्टम रिजल्ट टाइप कैसे लौटाएं? C# ASP.NET WebAPI में एक्शन मेथड से कस्टम रिजल्ट टाइप कैसे लौटाएं?

    हम IHttpActionResult इंटरफ़ेस को इम्प्लीमेंट करके अपनी खुद की कस्टम क्लास को रिजल्ट टाइप के रूप में बना सकते हैं। IHttpActionResult में एक सिंगल मेथड, ExecuteAsync होता है, जो एसिंक्रोनसली एक HttpResponseMessage इंस्टेंस बनाता है। public interface IHttpActionResult { Task ExecuteAsync(Cancellat

  1. VPN से अपनी वेबसाइट की सुरक्षा बढ़ाएं: एक व्यावहारिक गाइड VPN से अपनी वेबसाइट की सुरक्षा बढ़ाएं: एक व्यावहारिक गाइड

    एक वेबसाइट की सुरक्षा उस होस्ट के लिए महत्वपूर्ण है जो वेबसाइट लॉन्च करता है और साथ ही उन ग्राहकों के लिए जो किसी न किसी कारण से वेबसाइट पर जाते हैं। इसलिए यह साइट मालिक का कर्तव्य बन जाता है कि सुरक्षा उपाय मौजूद हों। रैंसमवेयर हमलों में वृद्धि के साथ, जोखिम बहुत बढ़ गए हैं और अब वेब सुरक्षा में सु