কম্পিউটার

C# ASP.NETWebAPI-তে FromBody এবং FromUri অ্যাট্রিবিউটের মধ্যে পার্থক্য কী?


যখন ASP.NET ওয়েব API একটি কন্ট্রোলারে একটি পদ্ধতি কল করে, তখন এটি অবশ্যই প্যারামিটারগুলির জন্য মান সেট করতে হবে, একটি প্রক্রিয়া যাকে প্যারামিটার বাইন্ডিং বলা হয়৷

একটি মডেল (একটি অ্যাকশন প্যারামিটার) আবদ্ধ করার জন্য, যা সাধারণত একটি ফরম্যাটারে ডিফল্ট হবে, URI থেকে আমাদের এটিকে [FromUri] অ্যাট্রিবিউট দিয়ে সাজাতে হবে। FromUriAttribute কেবল ModelBinderAttribute থেকে উত্তরাধিকারসূত্রে প্রাপ্ত, আমাদেরকে একটি শর্টকাট নির্দেশনা প্রদান করে যাতে ওয়েব API-কে IUriValueProviderFactory-তে সংজ্ঞায়িত ValueProviders ব্যবহার করে URI থেকে নির্দিষ্ট পরামিতিগুলি দখল করতে নির্দেশ দেওয়া হয়। অ্যাট্রিবিউটটি নিজেই সিল করা হয়েছে এবং আর বাড়ানো যাবে না, তবে আপনি যত খুশি কাস্টম IUriValueProviderFactories যোগ করুন।

[FromBody] অ্যাট্রিবিউট যা উত্তরাধিকারসূত্রে ParameterBindingAttribute শ্রেণীতে প্রাপ্ত হয় একটি HTTP অনুরোধের বডি থেকে একটি প্যারামিটার এবং এর বৈশিষ্ট্যগুলি পূরণ করতে ব্যবহৃত হয়। ASP.NET রানটাইম একটি ইনপুট ফরম্যাটারে বডি পড়ার দায়িত্ব অর্পণ করে। যখন [FromBody] একটি জটিল টাইপ প্যারামিটারে প্রয়োগ করা হয়, তখন এর বৈশিষ্ট্যগুলিতে প্রয়োগ করা যেকোনো বাঁধাই উৎস বৈশিষ্ট্য উপেক্ষা করা হয়।

FromUri অ্যাট্রিবিউটের উদাহরণ

উদাহরণ

using System.Collections.Generic;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      public IEnumerable<string> Get([FromUri] string id, [FromUri] string name){
         return new string[]{
            $"The Id of the Student is {id}",
            $"The Name of the Student is {name}"
         };
      }
   }
}

উপরের উদাহরণের জন্য আসুন আমরা URI-তে id এবং নামের মান পাস করি যাতে Get পদ্ধতিতে তাদের সংশ্লিষ্ট ভেরিয়েবলে পপুলেট করা যায়।

https://localhost:58174/api/demo?id=1&name=Mark

আউটপুট

উপরের কোডের আউটপুট হল

C# ASP.NETWebAPI-তে FromBody এবং FromUri অ্যাট্রিবিউটের মধ্যে পার্থক্য কী?

FromBody অ্যাট্রিবিউটের উদাহরণ

উদাহরণ

আসুন আমরা একটি স্টুডেন্ট মডেল তৈরি করি যার নিচের বৈশিষ্ট্য রয়েছে।

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

কন্ট্রোলার কোড

উদাহরণ

using DemoWebApplication.Models;
using System.Collections.Generic;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class DemoController : ApiController{
      public IEnumerable<string> Get([FromBody] Student student){
         return new string[]{
            $"The Id of the Student is {student.Id}",
            $"The Name of the Student is {student.Name}"
         };
      }
   }
}

উপরের উদাহরণের জন্য শিক্ষার্থীর জন্য মানটি অনুরোধের অংশে পাস করা হয়েছে এবং এটি শিক্ষার্থী বস্তুর সংশ্লিষ্ট সম্পত্তির সাথে ম্যাপ করা হয়েছে। নীচে পোস্টম্যান ব্যবহার করে অনুরোধ এবং প্রতিক্রিয়া দেওয়া হল৷

C# ASP.NETWebAPI-তে FromBody এবং FromUri অ্যাট্রিবিউটের মধ্যে পার্থক্য কী?


  1. এইচটিএমএল-এ আইডি এবং নামের বৈশিষ্ট্যগুলির মধ্যে পার্থক্য কী?

  2. নোভালিডেট এবং ফর্মনোভালিডেট অ্যাট্রিবিউটের মধ্যে পার্থক্য কী?

  3. C# এ স্ট্রিং এবং স্ট্রিং এর মধ্যে পার্থক্য কি?

  4. C# এ একটি তালিকা এবং একটি অ্যারের মধ্যে পার্থক্য কী?