Need of Web API Before learning more about the Web API, let's understand why do we need this Web API? Suppose you got an idea of a product in your mind and now you want to create a website for this product. So what you will do, you will create a website by using any technology, let's say, ASP.NET MVC Asp.Net Core or PHP or any other framework that are available in market. And you will store the entire data of this website in a database. So by combining this website and the database, you will have a fully functional Website. Now, suppose Let say, after some time alone with this website, you'll need to create an iOS application also and an Android application. Now you have three separate applications for your project. And remember, we already have one database, all the information about this website and these apps are available in this database. And because we have three applications and one database. So all these application has to communicate with this database like this. So website will communicate with the database, the iOS Application will communicate with the database. And similarly, this Android application will also communicate with the database. If all these applications are interacting with the database directly, then we will have some problems. Let's understand that. Problems if not using Web API First problem is duplicate logic for each application. Remember, in all the application, we have some business logic. If you will call your database directly from the website and Android application and the iOS application, then you need to write your business logic again and again. And this will duplicate your code error prone code because the business logic is written in all the applications. So there are chances that you might miss some logic in some application and this will add more errors in your code. Suppose you want to create your website by using angular framework then remember the ANGULAR is a front-end framework and this framework can not interact with the database directly. So in this situation where the website will interact with the database directly, you cannot use these type of frameworks. This type of structure is hard to maintain because we have written the code again and again. It means if we need to improve something in one application, then we need to do the same thing in all the applications. And this is very hard to maintain, etc.. There are loads of other problems that you face in this model. Now let's understand, how can we overcome with this problem?