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

सी # एएसपी.नेट वेबएपीआई में यूआरआई के साथ वेब एपीआई वर्जनिंग कैसे करें?

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

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

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

उदाहरण

आइए हम sudent कंट्रोलर के एक संस्करण 1 (V1) पर विचार करें जिसमें निम्नलिखित क्रियाविधियाँ हैं।

विद्यार्थी मॉडल V1 -

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

विद्यार्थी नियंत्रक V1 -

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class StudentV1Controller : ApiController{
      List<StudentV1> students = new List<StudentV1>{
         new StudentV1{
            Id = 1,
            Name = "Mark"
         },
         new StudentV1{
            Id = 2,
            Name = "John"
         }
      };
      [Route("api/v1/students")]
      public IEnumerable<StudentV1> Get(){
         return students;
      }
      [Route("api/v1/students/{id}")]
      public StudentV1 Get(int id){
         var studentForId = students.FirstOrDefault(x => x.Id == id);
         return studentForId;
      }
   }
}

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

सी # एएसपी.नेट वेबएपीआई में यूआरआई के साथ वेब एपीआई वर्जनिंग कैसे करें?

सी # एएसपी.नेट वेबएपीआई में यूआरआई के साथ वेब एपीआई वर्जनिंग कैसे करें?

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

विद्यार्थी मॉडल V2 -

उदाहरण

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

विद्यार्थी नियंत्रक V2 -

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class StudentV2Controller : ApiController{
      List<StudentV2> students = new List<StudentV2>{
         new StudentV2{
            Id = 1,
            FirstName = "Roger",
            LastName = "Federer"
         },
         new StudentV2{
            Id = 2,
            FirstName = "Tom",
            LastName = "Bruce"
         }
      };
      [Route("api/v2/students")]
      public IEnumerable<StudentV2> Get(){
         return students;
      }
      [Route("api/v2/students/{id}")]
      public StudentV2 Get(int id){
         var studentForId = students.FirstOrDefault(x => x.Id == id);
         return studentForId;
      }
   }
}

आउटपुट

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

सी # एएसपी.नेट वेबएपीआई में यूआरआई के साथ वेब एपीआई वर्जनिंग कैसे करें?

सी # एएसपी.नेट वेबएपीआई में यूआरआई के साथ वेब एपीआई वर्जनिंग कैसे करें?



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

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

  1. सी # एएसपी.नेट वेबएपीआई में किसी क्रिया विधि से कस्टम परिणाम प्रकार कैसे वापस करें?

    हम IHttpActionResult इंटरफ़ेस . को लागू करके परिणाम प्रकार के रूप में अपना स्वयं का कस्टम वर्ग बना सकते हैं . IHttpActionResult में एक ही विधि है, ExecuteAsync, जो अतुल्यकालिक रूप से एक HttpResponseMessage उदाहरण बनाता है। public interface IHttpActionResult {    Task<HttpResponseMessag

  1. वीपीएन के साथ वेब सुरक्षा को कैसे मजबूत करें

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