Web Development Beginner's Learning Roadmap- API Development
Tags: webdev, beginners, api, backend
Published: 2023-04-16 04:00:00

In this blog we will cover technologies a beginner web developer can learn on the API development and also explore some frameworks that support rapid extensive backend development support with feature rich API's. This is part-2 of two part blog, the first blog covered the frontend. If you missed that feel free to check it out- [Web Development Beginner's Learning Roadmap- Frontend](https://dev.to/nikkbh/web-development-beginners-learning-roadmap-frontend-2d7)


## Getting started
Backend development is quite different than frontend, while writing code on the client-side we do get instant feedback as to where we are headed with the results in front of our eyes, but developing backend requires some basic understanding of software architecture.

UI of your application gets all its data such user information, login details, application data, etc from a database which stores all this information in various tables. But, the data is not directly fetched from the databse, we need a middleware called **_API or Application Programming Interface._** 

![Database](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xeas4k47hjzpftmnaax1.png)

API's connect to the database and **_abstract_** away the business logic to perform CRUD operations on it. API gets a request of the type GET/PUT/POST/DELETE (_which are HTTP verbs for Fetch/Update/Create/Delete_) and respond back with the data.

![API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dqjv7qksc4458irdkkel.png)


## Languages used for backend development
There are many popular languages out there which are used for API development. As a beginner if you have some experience with frontend development then I am guessing you are already familiar with **JavaScript** already.

![JavaScipt](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4jdlom389pzkc2rie8o.png)


- [JavaScipt](https://developer.mozilla.org/en-US/docs/Web/JavaScript) is a versatile language, and apart from being used on the frontend it can also be used to write API's on the backend.

![Python](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ehf2dso3au17kwaze8sc.png)


- [Python](https://g.co/kgs/16WvVD) is yet another language which has become popular for API development. It has some great backend frameworks which can be used to build production ready APIs.


![C#](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sw14jfq5n3ce187pa9vs.png)

- [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language)) was designed by Microsoft. It is high-level programming language and it supports a wide arary of development tools. The **.NET** framework using C# can be used to build anything ranging from UI, API, IoT apps, Windows application, CLIs etc. It is a multipupose language and highly used within banking software applications.


![Java](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ibx0vz516xkhj8vidpd.png)

- [Java](https://blogs.oracle.com/oracleuniversity/post/why-does-java-remain-so-popular#:~:text=One%20of%20the%20most%20widely,%2C%20games%2C%20and%20numerical%20computing.) is yet another popular language and had the number one spot among the programming langues from 2004 to 2018. The **_Spring_** framework developed in Java is quite popular for API dev, Cloud applications etc.

---

## Frameworks
Here is the list of popular API frameworks/libraries which you can learn as a backend web developer:-

**Express.js**

![Express.js](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c9gu4f1e35zey4ce4big.png)
Express is a Node.js web application framework that provides a host of features for web and mobile applications. For API development it provides a lot of HTTP utility methods and middleware to creat APIs quickly. It is great for beginners with experience in JavaScript and you can write a basic CRUD API in Express in less than 30 mins. I have published 2 blogs on getting started with Express, feel free to check them out:
- [Beginner's Guide to REST API in JavaScript using Express](https://dev.to/nikkbh/beginners-guide-to-rest-api-in-javascript-using-express-jp)
- [Exception Handling and Logging Errors in REST API using Javascript & Express](https://dev.to/nikkbh/exception-handling-and-logging-errors-in-rest-api-using-javascript-express-5h93)

<u>Learning resources:-</u>
- https://expressjs.com/en/starter/installing.html
- https://www.youtube.com/watch?v=Oe421EPjeBE (Video Tutorial)

**Django**

![Django](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/88ixcdl2n83jfcq9vrlg.png)

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Django REST Framework is a wrapper over default Django Framework, basically used to create APIs of various kinds. It documentation and community support is quite strong. If you are a Python guy then you can surely check it out.

<u>Learning resources:-</u>
- https://www.django-rest-framework.org/
- https://www.youtube.com/watch?v=F5mRW0jo-U4 (Video Tutorial)

**ASP .NET Core**

![ASP .NET Core](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0bw1731um3f5lz09e05n.png)

ASP.NET Core is a free, open-source, and cross-platform framework for building cloud-based applications, such as web apps, IoT apps, and mobile backends. It is designed to run on the cloud as well as on-premises. It supports creating web APIs using controllers or using minimal APIs. Controllers in a web API are classes that derive from ControllerBase. All you need it Visual Studio as .NET Core comes preinstalled with it. This framewok is usually preferred by veterans already having experience with C# and may not be a good starting choice for a beginner backend web developer.

<u>Learning resources:-</u>
- https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-web-api
- https://www.youtube.com/watch?v=5YB49OEmbbE (Video Tutorial)

**Spring**

![Spring](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/89ojsbu124dyoykwq92w.png)

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. **_Spring Boot_** separates the boiler-plate code and configuration settings in an application to highlight focus on REST API development. All the JAVA folks will tend to love Spring Boot as it is easy to implement APIs in. 

<u>Learning resources:-</u>
- https://spring.io/guides/gs/rest-service
- https://www.youtube.com/watch?v=9SGDpanrc8U (Video Tutorial)

---

## Conclusion
I hope you found this blog informative. The resources mentioned above are sufficient enough for you to get started in API development, but you can explore more. Thank you for reading.

Happy Coding!

---

## References
- https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript#:~:text=JavaScript%20is%20a%20scripting%20language,and%20pretty%20much%20everything%20else.
- https://en.wikipedia.org/wiki/Python_(programming_language)
- https://en.wikipedia.org/wiki/C_Sharp_(programming_language)
- https://blogs.oracle.com/oracleuniversity/post/why-does-java-remain-so-popular#:~:text=One%20of%20the%20most%20widely,%2C%20games%2C%20and%20numerical%20computing.
- https://expressjs.com/
- https://spring.io/