Welcome to my submission for the 2023 EducateHacks Hackathon, where I have created an interactive API and a tutorial alongside it. The goal of this project is to teach you how to use APIs in a hands-on, fun and engaging way.
An API (Application Programming Interface) is a set of rules and protocols that allow different applications to communicate with each other. You can use APIs to access data, services, or functionalities from other applications or websites.
For example, you can use the Google Maps API to embed a map on your website, or you can use the Twitter API to fetch tweets from a specific user or hashtag.
This project consists of two parts: an API and a tutorial.
The API is a web service that responds to HTTP requests with JSON data. You can use any tool or language that can make HTTP requests to interact with the API. For example, you can use a web browser, a command-line tool like curl, or a programming language like Python or JavaScript to play around with it, the endpoints are available at http://localhost:8080/swagger-ui/index.html
, and the schema is available at http://localhost:8080/v3/api-docs
(after you run the JAR file).
The tutorial files are a few files aimed at teaching you all about APIs, and how to use them in Java. It then covers some of the more advanced ways you can use them.
To get started, go to the Introduction.md
file and follow the instructions there.
I created this project because I wanted to share my passion for APIs with others. I think APIs are powerful tools that can enable creativity and innovation. I also think that learning how to use APIs is an essential skill for anyone who wants to work with web development, data science, or any other field that involves working with data or services on the web.
I would like to extend this project further, and add more features to it. Here are some of the things I would like to add:
- Guide to using Spring Boot and Spring Web to create this API
- Guide to using languages other than Java to interact with APIs (e.g. Python, JavaScript, etc.)
- Having more endpoints and types of data to play around with
- Utilizing real services like Twitter, Google Maps, etc.
Since this is an early prototype, I would like to get feedback from the community and see what they think about this project. I would also like to know what features you would like to see in this project. Regardless, I hope you enjoy this project and learn something new from it. If you have any feedback or questions, feel free to contact me through GitHub!