Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะทำการกำหนดเวอร์ชันของ Web API ด้วย URI ใน C # ASP.NET WebAPI ได้อย่างไร


เมื่อบริการ Web API ถูกเผยแพร่สู่สาธารณะ แอปพลิเคชันไคลเอนต์ต่างๆ จะเริ่มใช้บริการ Web API ของเรา เมื่อธุรกิจเติบโตขึ้นและความต้องการเปลี่ยนแปลงไป เราอาจต้องเปลี่ยนบริการด้วยเช่นกัน แต่การเปลี่ยนแปลงในบริการควรทำในลักษณะที่ไม่ทำลายแอปพลิเคชันไคลเอ็นต์ที่มีอยู่

นี่คือเวลาที่การกำหนดเวอร์ชันของ Web API ช่วยได้ เราคงบริการที่มีอยู่ตามที่เป็นอยู่ เพื่อไม่ให้แอปพลิเคชันไคลเอนต์ที่มีอยู่เสียหาย และพัฒนาบริการเวอร์ชันใหม่ที่แอปพลิเคชันไคลเอนต์ใหม่สามารถเริ่มใช้งานได้

ทางเลือกหนึ่งในการใช้การกำหนดเวอร์ชันคือการใช้ URI ด้านล่างนี้คือตัวอย่างวิธีการนำไปใช้

ตัวอย่าง

ให้เราพิจารณาเวอร์ชัน 1 (V1) ของ sudent controller ซึ่งมีวิธีการดำเนินการดังต่อไปนี้

รุ่นนักศึกษา 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;
      }
   }
}

ในตัวอย่างข้างต้น เราได้ใช้ Attribute Routing เพื่อใช้งานการกำหนดเวอร์ชัน ผลลัพธ์ของตัวอย่างข้างต้นแสดงอยู่ด้านล่าง -

จะทำการกำหนดเวอร์ชันของ Web API ด้วย URI ใน C # ASP.NET WebAPI ได้อย่างไร

จะทำการกำหนดเวอร์ชันของ Web API ด้วย URI ใน C # ASP.NET WebAPI ได้อย่างไร

ในตอนนี้ ให้เราพูดในตัวควบคุมของนักเรียนว่า ธุรกิจได้เสนอการเปลี่ยนแปลงใหม่เฉพาะสำหรับผู้ใช้ใหม่และผู้ใช้ที่มีอยู่ควรใช้เวอร์ชัน 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;
      }
   }
}

ผลลัพธ์

ผลลัพธ์ของตัวอย่างด้านบนแสดงไว้ด้านล่าง

จะทำการกำหนดเวอร์ชันของ Web API ด้วย URI ใน C # ASP.NET WebAPI ได้อย่างไร

จะทำการกำหนดเวอร์ชันของ Web API ด้วย URI ใน C # ASP.NET WebAPI ได้อย่างไร