আমরা IHttpActionResult ইন্টারফেস প্রয়োগ করে ফলাফলের ধরন হিসাবে আমাদের নিজস্ব কাস্টম ক্লাস তৈরি করতে পারি . IHttpActionResult-এ একটি একক পদ্ধতি রয়েছে, ExecuteAsync, যা অ্যাসিঙ্ক্রোনাসভাবে একটি HttpResponseMessage উদাহরণ তৈরি করে৷
public interface IHttpActionResult { Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken); }
যদি একটি কন্ট্রোলার অ্যাকশন একটি IHttpActionResult প্রদান করে, Web API একটি HttpResponseMessage তৈরি করতে ExecuteAsyncmethod কল করে। তারপর এটি HttpResponseMessage কে একটি HTTP প্রতিক্রিয়া বার্তায় রূপান্তর করে৷
৷উদাহরণ
আমাদের নিজস্ব কাস্টম ফলাফল পেতে আমাদের অবশ্যই একটি ক্লাস তৈরি করতে হবে যা IHttpActionResult ইন্টারফেস প্রয়োগ করে৷
using System.Net.Http; using System.Threading; using System.Threading.Tasks; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class CustomResult : IHttpActionResult{ string _value; HttpRequestMessage _request; public CustomResult(string value, HttpRequestMessage request){ _value = value; _request = request; } public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken){ var response = new HttpResponseMessage(){ Content = new StringContent($"Customized Result: {_value}"), RequestMessage = _request }; return Task.FromResult(response); } } }
কন্ট্রোলার অ্যাকশন −
উদাহরণ
using DemoWebApplication.Models; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace DemoWebApplication.Controllers{ public class DemoController : ApiController{ public IHttpActionResult Get(int id){ List<Student> students = new List<Student>{ new Student{ Id = 1, Name = "Mark" }, new Student{ Id = 2, Name = "John" } }; var studentForId = students.FirstOrDefault(x => x.Id == id); return new CustomResult(studentForId.Name, Request); } } }
এখানে শেষ পয়েন্টের পোস্টম্যান আউটপুট যা কাস্টম ফলাফল প্রদান করে।