A Web Application Programming Interface (API) is a programming interface that can extend browser functionality and simplify complex functions and code syntaxes. You can expect interview questions about Web API when you apply for an ASP.Net developer position. To do well, it will help to review these questions and practice answering them beforehand.
In this article, we will look at some commonly asked Web API interview questions and example answers to help you prepare for your upcoming job interview.
General Web API interview questions
When you go for a job interview for a role related to Web API, you may encounter the following questions:
- What do you know about Web API?
- Explain why we need to use Web API.
- How does Web API work?
- Has WCF been replaced by Web API?
- Is Web API better than WCF?
- List some Web API advantages.
Basic Web API interview questions
Interviewers often ask the following basic Web API questions during job interviews:
- List the differences between Web API and WCF.
- List the differences between Web API and MVC.
- What do you know about REST? What is the benefit of using it in Web API?
- Explain the difference between REST API and Web API.
- Which protocol does Web API support?
- What do you know about SOAP?
- How are errors handled in Web API?
- List the new features of ASP.NET Web API 2.0.
In-depth Web API interview questions
You can practice answering these in-depth Web API questions before your interview:
- What constraints does the REST architectural pattern specify?
- Which tools can you use for testing Web APIs?
- Which library does Web API use for JSON serialisation?
- Explain content negotiation in Web API.
- Explain Media-Type formatter in Web API.
- What is Authorise Attribute? Explain its use.
- Describe the different ways of doing Web API Versioning.
- Explain the differences between REST and SOAP.
Frequently asked Web API interview questions and example answers
These frequently asked Web API interview questions and example answers can help you prepare well for your job interview:
1. What do you know about Basic HTTP Authentication?
Interviewers often ask this question to find out what you know about controlling access to Web API Services. Access control is necessary for providing security. As an ASP.NET Web API developer, you must know this.
Example: "Authentication is the process by which the host server requests the client to provide identifying information such as username and password to confirm their identity. The server receives the base-64 encoded information in an Authorisation header. There are built-in modules in ASP.NET that the server can use for user authentication, but you can also create your own HTTP modules if you want more customised authentication. For Basic HTTP Authentication to be secure, it is necessary to have a secure connection between the server and the web client."
2. How to handle errors in Web API using HttpError?
By asking this question, interviewers want to find out if you understand how to deal with unhandled runtime exceptions or errors in your application code in Web API. It is necessary knowledge for ASP.NET Web API developers.
Example: "You can use the CreateErrorResponse extension method to create an instance of HTTPError object and place that inside a HttpResponseMessage object. By using the CreateErrorResponse extension method in your Web API controller method, it is possible to return meaningful error codes and messages."
3. What do you know about exception filters?
Interviewers ask this question to assess your knowledge of using exception filters to handle unhandled exceptions.
Example: "Exception filters are executed when a controlled action method throws an unhandled exception and are useful for handling such unhandled runtime errors generated in Web API."
4. What are REST constraints?
This interview question is meant to test your understanding of REST architectural constraints. In your answer, you should explain what REST is and mention that it is different from Web API, which might or might not be REST-compliant. If Web API is REST-compliant, it must adhere to REST constraints. You will need to mention here that, of the six REST constraints, five are essential and the sixth is optional.
Example: "In 2000, Roy Fielding coined the term REST. It stands for Representational State Transfer and is an architectural style that sets uniform, pre-defined rules for creating web services. It is a standard that you can use to design network-based software systems. REST-based systems comprise clients requesting resources and servers allocating resources. They interact via HTTP and use REST rules to access and avail of web resources.
On the other hand, a Web API is a concept that you can build using .NET, Java and other technologies. It is an open-source framework for writing HTTP API. If it is RESTful, it must comply with REST constraints.
There are six REST architectural constraints, uniform interface, cacheable, stateless, client-server, layered system and code on demand. Of these, code on demand is optional, while the others are required.
Uniform interface is a fundamental constraint that simplifies and defines the interface between clients and servers. It enables clients to access and modify resources using one logical Uniform Resource Identifier (URI) and allows them to get additional data. The four principles that it follows are resource identification, resource manipulation using representations, self-descriptive messages and HATEOAS, which is the acronym for hypermedia as the engine of application state.
Cacheable is a constraint that defines cached responses as cacheable or non-cacheable. By caching client-side responses, the client does not have to repeatedly request the server to retrieve the response and this eliminates unnecessary client-server interactions. While it improves performance, it is necessary to update the cache every time the data is updated on the server-side.
Stateless is a constraint that enables the client to make a self-contained request for a resource to the server. Since the server would not store client information from previous sessions, the request will need to contain client credentials, session information or context information. The server will then be able to understand and validate the request every time.
For the client-server constraint, there has to be a separation between the client-side and the server-side of the program. They cannot intervene with or depend on each other. They must work separately. The client does not need to know about the server backend stuff like fetching resources, using databases, using languages, etc. The server does not need to know about frontend matters like the client's resource usage and user interface design. Such separation of concerns makes things less complex.
The layered system constraint allows for a layered system that uses three different servers to deploy APIs, store data and authenticate requests. The client will not know if it has connected to an intermediary server or an end server.
5. Explain the differences between REST and SOAP.
The purpose of this commonly asked interview question is to check your understanding of the communication system used to interact between different devices or applications over the world wide web.
Example: "REST and SOAP are both types of communication systems and have several differences between them. To begin with, REST stands for Representational State Transfer and SOAP stands for Simple Object Access Protocol. REST is an architectural style that serves as a communication channel between different devices and systems over the internet, while SOAP is a standard communication protocol system that allows processes on different operating systems to interact via web-based protocols like HTTP and XML. Also, REST APIs are application programming interfaces that follow the REST architectural system's style and SOAP APIs are useful for maintaining accounts and performing accurate searches.
REST APIs send mostly JSON message requests to the server and require limited bandwidth, while SOAP uses more bandwidth for its messages that contain more information. REST is stateless, which means the server does not store the client context between requests. SOAP has stateful operations, where the server stores and uses client information. REST performance is faster than that of SOAP."
6. What is Routing in ASP.Net Web API?
Interviewers may ask this question during the job interview to assess your understanding of configuring Web API routes.
Example: "To understand routing in ASP.Net Web API, we need to first know what a controller is and what actions are. A controller is a class for responding to HTTP requests and the public methods it uses are known as actions or action methods. Every time there is an incoming HTTP request, the Web API uses the routing process to determine and call for a specific action and controller. There are two routing types, convention-based routing and attribute routing. For handling HTTP requests and defining routes, the former* *requires route templates and the latter requires route attributes."**