আমরা 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);
}
}
} এখানে শেষ পয়েন্টের পোস্টম্যান আউটপুট যা কাস্টম ফলাফল প্রদান করে।
