Programming Articles - Page 1779 of 3366

How to do versioning with custom media type in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:52:13

301 Views

Media types allow an API to inform the client how to interpret the data in the payload. In the HTTP protocol, Media Types are specified with identifiers like text/html, application/json, and application/xml, which correspond to HTML, JSON, and XML respectively, the most common web formats. There are other more APIspecific Media Types as well, such as application/vnd.api+json.Below are versions that needs to be send in media types.application/vnd.demo.students.v1+json StudentsV1Controller application/vnd.demo.students.v2+json StudentsV2ControllerAdding our own CustomControllerSelector will fix the above error.CustomControllerSelector −Exampleusing System.Linq; using System.Net.Http; using System.Text.RegularExpressions; using System.Web.Http; using System.Web.Http.Controllers; using System.Web.Http.Dispatcher; namespace WebAPI.Custom{    public class CustomControllerSelector : DefaultHttpControllerSelector{     ... Read More

How to do versioning with accept header in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:45:22

642 Views

The Accept header tells the server in what file format the browser wants the data. These file formats are more commonly called as MIME-types. MIME stands for Multipurpose Internet Mail Extensions.Versioning can be send in Headers like below.Version=1 StudentsV1Controller Version=2 StudentsV2ControllerSince we have not handled the version in accept headers, we are getting 404 not found error as we only have StudentV1 and StudentV2 controller. Let us add our own CustomControllerSelector which implements the DefaultHttpControllerSelector class.CustomControllerSelector −Exampleusing System.Linq; using System.Net.Http; using System.Web.Http; using System.Web.Http.Controllers; using System.Web.Http.Dispatcher; namespace WebAPI.Custom{    public class CustomControllerSelector : DefaultHttpControllerSelector{       private HttpConfiguration _config; ... Read More

How can we create an exception filter to handle unhandled exceptions in C#ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:37:03

468 Views

An exception filter is executed when a controller method throws any unhandled exception that is not an HttpResponseException exception. The HttpResponseException type is a special case, because it is designed specifically for returning an HTTP response.Exception filters implement the System.Web.Http.Filters.IExceptionFilter interface. The simplest way to write an exception filter is to derive from the System.Web.Http.Filters.ExceptionFilterAttribute class and override the OnException method.Below is a filter that converts NotFiniteNumberException exceptions into HTTP status code 416, Requested Range Not Satisfiable.ExceptionFilterAttribute −Exampleusing System; using System.Net; using System.Net.Http; using System.Web.Http.Filters; namespace DemoWebApplication.Controllers{    public class ExceptionAttribute : ExceptionFilterAttribute{       public override void OnException(HttpActionExecutedContext ... Read More

How to do versioning with the Querystring parameter in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:32:59

468 Views

The DefaultHttpControllerSelector class in web api is responsible for selecting the appropriate controller action method that we send in the URI.Say we have to implement versioning in the query string like belowv=1 StudentsV1Controller (Version 1) v=2 StudentsV2Controller (Version 2)If we pass the versioning information in the query string like http://localhost:58174/api/student?v=1 will result in 404 Not Found error response because the SelectController() method which is present in DefaultHttpControllerSelector will look for the StudentsController but we have only StudentsV1Controller and StudentsV2Controller.To handle this case, we should add our own CustomControllerSelector which implements the DefaultHttpControllerSelector class.CustomControllerSelector −Exampleusing System.Net.Http; using System.Web; using System.Web.Http; using ... Read More

How to do Web API versioning with URI in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:26:20

764 Views

Once a Web API service is made public, different client applications start using our Web API services. As the business grows and requirements change, we may have to change the services as well, but the changes to the services should be done in way that does not break any existing client applications.This is when Web API versioning helps. We keep the existing services as is, so we are not breaking the existing client applications, and develop a new version of the service that new client applications can start using.One of the option to implement versioning is by using URI. Below ... Read More

How can we restrict access to methods with specific HTTP verbs in C# ASP.NETWebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:19:50

2K+ Views

The HTTP verbs comprise a major portion of our “uniform interface” constraint and provide us the action counterpart to the noun-based resource. The primary or mostcommonly-used HTTP verbs (or methods, as they are properly called) are POST, GET, PUT, PATCH, and DELETE. These correspond to create, read, update, and delete (or CRUD) operations, respectively. There are a number of other verbs, too, but are utilized less frequently. Of those less-frequent methods, OPTIONS and HEAD are used more often than others.Action method can be named as HTTP verbs like Get, Post, Put, Patch or Delete. However, we can append any suffix ... Read More

How can we assign alias names for the action method in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:14:16

3K+ Views

A public method in a controller is called an Action method. Let us consider an example where DemoController class is derived from ApiController and includes multiple action methods whose names match with HTTP verbs like Get, Post, Put and Delete.Examplepublic class DemoController : ApiController{    public IHttpActionResult Get(){       //Some Operation       return Ok();    }    public IHttpActionResult Post([FromUri]int id){       //Some Operation       return Ok();    }    public IHttpActionResult Put([FromUri]int id){       //Some Operation       return Ok();    }    public IHttpActionResult Delete(int id){   ... Read More

What are the different types of filters in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 12:09:58

13K+ Views

Filters are used to inject extra logic at the different levels of WebApi Framework request processing. Filters provide a way for cross-cutting concerns (logging, authorization, and caching). Filters can be applied to an action method or controller in a declarative or programmatic way. Below are the types of filters in Web API C#.Authentication Filter −An authentication filter helps us to authenticate the user detail. In the authentication filter, we write the logic for checking user authenticity.Authorization Filter −Authorization Filters are responsible for checking User Access. They implement the IAuthorizationFilterinterface in the framework.Action Filter −Action filters are used to add extra ... Read More

How to resolve CORS issue in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 11:57:44

7K+ Views

Cross-Origin Resource Sharing (CORS) is a mechanism that uses additional HTTP headers to tell browsers to give a web application running at one origin, access to selected resources from a different origin. A web application executes a cross-origin HTTP request when it requests a resource that has a different origin (domain, protocol, or port) from its own.For example, let us consider an application which is having its front end (UI) and back end (Service). Say the front-end is served from https://demodomain-ui.com and the backend is served from from https://demodomain-service.com/api. If an end user tries to access the application, for security ... Read More

How to return custom result type from an action method in C# ASP.NET WebAPI?

Nizamuddin Siddiqui
Updated on 19-Aug-2020 11:54:42

1K+ Views

We can create our own custom class as a result type by implementing IHttpActionResult interface. IHttpActionResult contains a single method, ExecuteAsync, which asynchronously creates an HttpResponseMessage instance.public interface IHttpActionResult {    Task ExecuteAsync(CancellationToken    cancellationToken); }If a controller action returns an IHttpActionResult, Web API calls the ExecuteAsync method to create an HttpResponseMessage. Then it converts the HttpResponseMessage into an HTTP response message.ExampleTo have our own custom result we must create a class that implements IHttpActionResult interface.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; ... Read More

Advertisements