ASP.
NET Web API : (Application Programming Interface)
IOTs Internet of things (The devices which all having IP
address and using Internet eg, Security devices , Swipe
machines)
Part 2: Creating a WEB API project
Visual Studio 2015 -> New -> Project -> ASP.net web
application -> Web Api
There are 2 ways to clear the existing errors:
Step 1: Close all the visual studio instances
Step 2: Launch windows PowerShell
Step 3: Start -> All Apps -> Windows power shell
->Windows PowerShell -> right click and run at
administrator -> press R ->
Step 4: Launch the package manager console
Tools-> Nuget packages -> Package manager console
-> press R
ValuesController.cs is the web api controller which is
present in the controller folder
Values controller inherits from Web api controller which is
present in the System.Web.HTTP namespace
Config class is present in the Global.asax and the register
method is
WebApiConfig class present in the App_Start folder which
is contain the default register class and the default
Routes
Part 3: HTTP GET PUT POST and DELETE
Part 4: ASP.net web api and sql server and Part 5:
Part 6: Removing the formatters:
Part 7: Post method
GET Method
Part 8: Delete method
Part 9: PUT method
Part 10: Custom method names in webapi
Part 11: Query string parameter
Part 12: FromBody and FromURI
Part 13: Call ASP.NET WEBAPI from JQuery
Part 13: Cross Domain in JQuery
Write below code in Webapiconfig file
Part 15: Cross origin resource sharing
Enable and disable CORS in specific controller and
method
Part 16: Enable SSL in visual studio development server
Part 17: ASP.NET enable HTTPS
Inherited from AutherizationFilterAttribute class which is
derived from system.web.Http.Filters
Register in webapiconfig
Part 18: Basic Authentication
Part 19: Basic Authentication from Jquery
Part 20 & 21: ASP.net Web API token authentication
Adding bootstrap references:
Bootstrap references:
Part 22 Using asp net identity with Web API
Part 23:
Solution Explorer Startup.Auth.cs
Provider ApplicationOAuthProvider
GrandResourceOwnerCredentials
Token validation is 1 hour
Part 24 ASP NET Web API login page
Storing the token in session
Part 25:
Part 26 ASP NET Web API logout
Part 27 How to get authenticated user identity name in
asp net web api
What is ASP.NET Web API?
ASP.NET Web API is a framework that simplifies building
HTTP services for broader range of clients (including
browsers as well as mobile devices) on top of .NET
Framework.
Using ASP.NET Web API, we can create non-SOAP based
services like plain XML or JSON strings, etc. with many
other advantages including:
Create resource-oriented services using the full
features of HTTP
Exposing services to a variety of clients easily like
browsers or mobile devices, etc.
What are the Advantages of Using ASP.NET Web
API?
It works the HTTP way using standard HTTP verbs
like GET, POST, PUT, DELETE, etc. for all CRUD operations
Complete support for routing
Response generated in JSON or XML format
using MediaTypeFormatter
It has the ability to be hosted in IIS as well as self-
host outside of IIS
Supports Model binding and Validation
Support for OData
and more....
What New Features are Introduced in ASP.NET Web
API 2.0?
Attribute Routing
External Authentication
CORS (Cross-Origin Resource Sharing)
OWIN (Open Web Interface for .NET) Self Hosting
IHttpActionResult
Web API OData
WCF Vs ASP.NET Web API?
Actually, Windows Communication Foundation is
designed to exchange standard SOAP-based messages
using variety of transport protocols like HTTP, TCP,
NamedPipes or MSMQ, etc.
On the other hand, ASP.NET API is a framework for
building non-SOAP based services over HTTP only.
Is it True that ASP.NET Web API has Replaced WCF?
It's a misconception that ASP.NET Web API has replaced
WCF. It's another way of building non-SOAP based
services, for example, plain XML or JSON string, etc.
Yes, it has some added advantages like utilizing full
features of HTTP and reaching more clients such as
mobile devices, etc.
But WCF is still a good choice for following scenarios:
If we intended to use transport other than HTTP, e.g.
TCP, UDP or Named Pipes
Message Queuing scenario using MSMQ
One-way communication or Duplex communication
MVC Vs ASP.NET Web API?
As in previous ASP.NET Web API Interview Questions, we
discussed that the purpose of Web API framework is to
generate HTTP services that reach more clients by
generating data in raw format, for example, plain XML or
JSON string. So, ASP.NET Web API creates simple HTTP
services that renders raw data.
On the other hand, ASP.NET MVC framework is used to
develop web applications that generates Views as well as
data. ASP.NET MVC facilitates in rendering HTML easy.
How to Return View from ASP.NET Web API
Method?
(A tricky Interview question) No, we can't return view
from ASP.NET Web API method. We discussed in the
earlier interview question about the difference between
ASP.NET MVC and Web API that ASP.NET Web API creates
HTTP services that renders raw data. Although, it's quite
possible in ASP.NET MVC application.
How to Restrict Access to Web API Method to
Specific HTTP Verb?
Attribute programming plays its role here. We can easily
restrict access to an ASP.NET Web API method to be
called using a specific HTTP method. For example, we
may require in a scenario to restrict access to a Web API
method through HTTP POST only as follows:
Hide Copy Code
[HttpPost]
public void UpdateStudent(Student aStudent)
{
StudentRepository.AddStudent(aStudent);
}
Can we use Web API with ASP.NET Web Form?
Yes, ASP.NET Web API is bundled with ASP.NET MVC
framework but still it can be used with ASP.NET Web
Form.
1. Create a Web API Controller
2. Add a routing table to Application_Start method
of Global.asax
3. Make a jQuery AJAX Call to Web API method and get
data
jQuery call to Web API for all CRUD (Create, Retrieve,
Update, Delete) operations can be found here.
How Can We Provide an Alias Name for ASP.NET
Web API Action?
We can provide an alias name for ASP.NET Web API action
same as in case of ASP.NET MVC by using "ActionName"
attribute as follows:
Hide Copy Code
[HttpPost]
[ActionName("SaveStudentInfo")]
public void UpdateStudent(Student aStudent)
{
StudentRepository.AddStudent(aStudent);
}
In this ASP.NET Tutorial, we covered the most important
Interview questions on ASP.NET Web API framework.
Hopefully, it will be helpful for Web API developer
Interview but along with these questions, do the practical
implementation as much as you can. In Practical guide
to ASP.NET Web API, you can find a good step by step
approach for understanding and implementing ASP.NET
Web API services.
1) What is Web API?
It is a framework which helps us to build/develop HTTP services.
So there will a client server communication using HTTP protocol.
2) What is Representational state transfer or REST?
REST is architectural style, which has defined guidelines for
creating services which are scalable. REST used with HTTP
protocol using its verbs GET, POST, PUT and DELETE.
3) Explain Web API Routing?
Routing is the mechanism of pattern matching as we have in
MVC. These routes will get registered in Route Tables. Below is
the sample route in Web API
Routes.MapHttpRoute(
Name: "MyFirstWebAPIRoute",
routeTemplate: api/{controller}/{id}
defaults: new { id = RouteParameter.Optional}
};
4) List out the differences between WCF and Web API?
WCF
It is framework build for building or developing service
oriented applications.
WCF can be consumed by clients which can understand
XML.
WCF supports protocols like HTTP, TCP, Named Pipes etc.
Web API
It is a framework which helps us to build/develop HTTP
services
Web API is an open source platform.
It supports most of the MVC features which keep Web API
over WCF.
5) What are the advantages of using REST in Web API?
REST always used to make less data transfers between client
and server which makes REST an ideal for using it in mobile
apps. Web API supports HTTP protocol thereby it reintroduces
the old way of HTTP verbs for communication.
6) Difference between WCF Rest and Web API?
WCF Rest
WebHttpBinding to be enabled for WCF Rest.
For each method there has to be attributes like WebGet
and WebInvoke
For GET and POST verbs respectively.
Web API
Unlike WCF Rest we can use full features of HTTP in Web
API.
Web API can be hosted in IIS or in application.
7) List out differences between MVC and Web API?
Below are some of the differences between MVC and Web API
MVC
MVC is used to create a web app, in which we can build web
pages.
For JSON it will return JSONResult from action method.
All requests are mapped to the respective action methods.
Web API
This is used to create a service using HTTP verbs.
This returns XML or JSON to client.
All requests are mapped to actions using HTTP verbs.
8) What are the advantages of Web API?
OData
Filters
Content Negotiation
Self Hosting
Routing
Model Bindings
9) Can we unit test Web API?
Yes we can unit test Web API.
10) How to unit test Web API?
We can unit test the Web API using Fiddler tool. Below are the
settings to be done in Fiddler
Compose Tab -> Enter Request Headers -> Enter the Request
Body and execute
11) Can we return view from Web API?
No. We cannot return view from Web API.
12) How we can restrict access to methods with specific
HTTP verbs in Web API?
Attribute programming is used for this functionality. Web API will
support to restrict access of calling methods with specific HTTP
verbs. We can define HTTP verbs as attribute over method as
shown below
[HttpPost]
public void UpdateTestCustomer(Customer c)
TestCustomerRepository.AddCustomer(c);
}13) Can we use Web API with ASP.NET Web Forms?
Yes. We can use Web API with ASP.NET Webforms.
14) List out the steps to be made for Web API to work in Web
Forms?
Creating new controller for Web API.
Adding routing table to Application_Start method
in Global.asax
Make a AJAX call to Web API actions.
15) Explain how to give alias name for action methods in
Web API?
[HttpPost]
[ActionName("AliasTestAction")]
public void UpdateTestCustomer(Customer c)
TestCustomerRepository.AddCustomer(c);
16) What is the difference between MVC Routing and Web
API Routing?
There should be atleast one route defined for MVC and Web API
to run MVC and Web API application respectively. In Web API
pattern we can find api/ at the beginning which makes it distinct
from MVC routing. In Web API routing action parameter is not
mandatory but it can be a part of routing.
17) Explain Exception Filters?
Exception filters will be executed whenever controller methods
(actions) throws an exception which is unhandled. Exception
filters will implement IExceptionFilter interface.
18) Explain about the new features added in Web API 2.0
version?
OWIN
Attribute Routing
External Authentication
Web API OData
19) How can we pass multiple complex types in Web API?
Using ArrayList
Newtonsoft JArray
20) Write a code snippet for passing arraylist in Web API?
ArrayList paramList = new ArrayList();
Category c = new Category { CategoryId = 1, CategoryName =
"SmartPhones"};
Product p = new Product { ProductId = 1, Name = "Iphone", Price
= 500, CategoryID = 1 };
paramList.Add(c);
paramList.Add(p);
21) Give an example of Web API Routing?
config.Routes.MapHttpRoute(
name: "MyRoute",//route name
routeTemplate: "api/{controller}/{action}/{id}",//as you can see
"api" is at the beginning.
defaults: new { id = RouteParameter.Optional }
);22) Give an example of MVC Routing?
routes.MapRoute(
name: "MyRoute", //route name
url: "{controller}/{action}/{id}", //route pattern
defaults: new
controller = "a4academicsController",
action = "a4academicsAction",
id = UrlParameter.Optional
);23) How we can handle errors in Web API?
HttpResponseException
Exception Filters
Registering Exception Filters
HttpError
24) Explain how we can handle error from
HttpResponseException?
public TestClass MyTestAction(int id)
TestClass c = repository.Get(id);
if (c == null)
throw new HttpResponseException(HttpStatusCode.NotFound);
} return c;
25) How to register Web API exception filters?
From Action
From Controller
Global registration
26) Write a code snippet to register exception filters from
action?
[NotImplExceptionFilter]
public TestCustomer GetMyTestCustomer(int custid)
//Your code goes here
27) Write a code snippet to register exception filters from
controller?
[NotImplExceptionFilter]
public class TestCustomerController : Controller
{
//Your code goes here
}
28) Write a code snippet to register exception filters
globally?
GlobalConfiguration.Configuration.Filters.Add( new
MyTestCustomerStore.NotImplExceptionFilterAttribute());
29) How to handle error using HttpError?
HttpError will be used to throw the error info in response body.
CreateErrorResponse method is used along with this, which is
an extension method defined in
HttpRequestMessageExtensions.
30) Write a code snippet to show how we can return 404 error
from HttpError?
Below is the code snippet for returning 404 error from HttpError
string message = string.Format("TestCustomer id = {0} not
found", customerid);
return Request.CreateErrorResponse(HttpStatusCode.NotFound,
message);
31) How to enable tracing in Web API?
To enable tracing place below code in Register method
of WebAPIConfig.cs file.
config.EnableSystemDiagnosticsTracing();
32) Explain how Web API tracing works?
Tracing in Web API done in faade pattern i.e, when tracing for
Web API is enabled, Web API will wrap different parts of request
pipeline with classes, which performs trace calls.
33) Can we unit test Web API?
Yes we can unit test Web API.
34) Explain Authentication in Web API?
Web API authentication will happen in host. In case of IIS it uses
Http Modules for authentication or we can write custom Http
Modules. When host is used for authentication it used to create
principal, which represent security context of the application.
35) Explain ASP.NET Identity?
One ASP.NET Identity System
Persistence Control
36) What are Authentication Filters in Web API?
Authentication Filter will let you set the authentication scheme for
actions or controllers. So this way our application can support
various authentication mechanisms.
37) How to set the Authentication filters in Web API?
Authentication filters can be applied at the controller or action
level. Decorate attribute "IdentityBasicAuthentication over
controller where we have to set the authentication filter.
38) Explain method AuthenticateAsync in Web API?
AuthenticateAsync method will create IPrincipal and will set
on request. Below is the sample code snippet for
AuthenticateAsync
Task AuthenticateAsync(HttpAuthenticationContext
mytestcontext,CancellationToken mytestcancellationToken)
39) How to set the Error Result in Web API?
HttpResponseMessage myresponse = new
HttpResponseMessage(HttpStatusCode.Unauthorized);
myresponse.RequestMessage = Request;
myresponse.ReasonPhrase = ReasonPhrase;
40) Explain method ChallengeAsync in Web API?
ChallengeAsync method is used to add authentication
challenges to response. Below is the method signature
Task ChallengeAsync( HttpAuthenticationChallengeContext
mytestcontext,CancellationToken mytestcancellationToken)
41) What are media types?
It is also called MIME, which is used to identify the data . In Html,
media types is used to describe message format in the body.
42) List out few media types of HTTP?
Image/Png
Text/HTML
Application/Json
43) Explain Media Formatters in Web API?
Media Formatters in Web API can be used to read the CLR object
from our HTTP body and Media formatters are also used for
writing CLR objects of message body of HTTP.
44) How to serialize read-only properties?
Read-Only properties can be serialized in Web API by setting the
value true to the property
SerializeReadOnlyTypes of class
DataContractSerializerSettings.
45) How to get Microsoft JSON date format ?
Use DateFormatHandling property in serializer settings as
below
var myjson =
GlobalConfiguration.Configuration.Formatters.JsonFormatter;
myjson.SerializerSettings.DateFormatHandling =
Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
46) How to indent the JSON in web API?
Below is the code snippet to make JSON indenting
var mytestjson =
GlobalConfiguration.Configuration.Formatters.JsonFormatter;
mytestjson.SerializerSettings.Formatting =
Newtonsoft.Json.Formatting.Indented;
47) How to JSON serialize anonymous and weakly types
objects?
Using Newtonsoft.Json.Linq.JObject we can serialize and
deserialize weakly typed objects.
48) What is the use of IgnoreDataMember in Web API?
By default if the properties are public then those can be serialized
and deserialized, if we does not want to serialize the property
then decorate the property with this attribute.
49) How to write indented XML in Web API?
To write the indented xml set Indent property to true.
50) How to set Per-Type xml serializer?
We can use method SetSerializer. Below is the sample code
snippet for using it
var mytestxml =
GlobalConfiguration.Configuration.Formatters.XmlFormatter;
// Use XmlSerializer for instances of type "Product":
mytestxml.SetSerializer<Product>(new
XmlSerializer(typeof(MyTestCustomer)));
51) What is Under-Posting and Over-Posting in Web API?
Under-Posting - When client leaves out some of the
properties while binding then its called under posting.
Over-Posting If the client sends more data than expected
in binding then its called over-posting.
52) How to handle validation errors in Web API?
Web API will not return error to client automatically on validation
failure. So its controllers duty to check the model state and
response to that. We can create a custom action filter for handling
the same.
53) Give an example of creating custom action filter in Web
API?
Below is the sample code for creating custom action filter
public class MyCustomModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext
actionContext)
if (actionContext.ModelState.IsValid == false)
//Code goes here
In case validation fails here it returns HTTP response which
contains validation errors.
54) How to apply custom action filter in WebAPI.config?
Add a new action filter in Register method as shown -
public static class WebApiConfig
public static void Register(HttpConfiguration config)
config.Filters.Add(new MyCustomModelAttribute());
}
}55) How to set the custom action filter in action methods in
Web API?
public class MyCustomerTestController : ApiController
[MyCustomModelAttribute]
public HttpResponseMessage Post(MyTestCustomer customer)}
}56) What is BSON in Web API?
Its is a binary serialization format. BSON stands for Binary
JSON. BSON serializes objects to key-value pair as in JSON. Its
light weight and its fast in encode/decode.
57) How to enable BSON in server?
Add BsonMediaTypeFormatter in WebAPI.config as shown
below
public static class WebApiConfig
public static void Register(HttpConfiguration config)
{
config.Formatters.Add(new BsonMediaTypeFormatter());
// Other Web API configuration goes here
58) How parameter binding works in Web API?
If it is simple parameters like bool,int, double etc. then
value will be obtained from the URL.
Value read from message body in case of complex types.
59) Why to use FromUri in Web API?
In Web API to read complex types from URL we will use
FromUri attribute to the parameter in action method. Eg:
public MyValuesController : ApiController
public HttpResponseMessage Get([FromUri] MyCustomer c)
{ ... }
60) Why to use FromBody in Web API?
This attribute is used to force Web API to read the simple type
from message body. FromBody attribute is along with
parameter. Eg:
public HttpResponseMessage Post([FromBody] int customerid,
[FromBody] string customername) { ... }
61) Why to use IValueprovider interface in Web API?
This interface is used to implement custom value provider.