An open API service indexing awesome lists of open source software.

https://github.com/mos63/e2e_full_api_demo

End-to-end API development and deployment using FastAPI, Docker, and Kubernetes.
https://github.com/mos63/e2e_full_api_demo

codecov docker-compose e2e-tests go-kit godev gokit gomock integration-testing istio kubernetes microservice todomvc unittest

Last synced: 3 months ago
JSON representation

End-to-end API development and deployment using FastAPI, Docker, and Kubernetes.

Awesome Lists containing this project

README

          

# πŸš€ E2E_FULL_API_Demo

![GitHub Repo stars](https://img.shields.io/github/stars/mos63/E2E_FULL_API_Demo?style=social) ![GitHub forks](https://img.shields.io/github/forks/mos63/E2E_FULL_API_Demo?style=social) ![GitHub issues](https://img.shields.io/github/issues/mos63/E2E_FULL_API_Demo) ![GitHub license](https://img.shields.io/github/license/mos63/E2E_FULL_API_Demo)

Welcome to the **E2E_FULL_API_Demo** repository! This project demonstrates end-to-end API development and deployment using FastAPI, Docker, and Kubernetes.

## 🌟 Table of Contents

1. [Introduction](#introduction)
2. [Features](#features)
3. [Getting Started](#getting-started)
4. [Installation](#installation)
5. [Usage](#usage)
6. [Deployment](#deployment)
7. [Contributing](#contributing)
8. [License](#license)
9. [Contact](#contact)
10. [Releases](#releases)

## πŸ“– Introduction

In today’s fast-paced tech environment, building efficient APIs is crucial. This project showcases how to create a robust API using **FastAPI**, package it with **Docker**, and deploy it using **Kubernetes**.

Whether you are a beginner or an experienced developer, this demo will guide you through the essential steps to set up your own API.

## πŸš€ Features

- **FastAPI**: High-performance web framework for building APIs.
- **Docker**: Containerize your application for easy deployment.
- **Kubernetes**: Manage your containers with a powerful orchestration tool.
- **Comprehensive Documentation**: Clear instructions and examples for every step.
- **Community Support**: Join a growing community of developers.

## πŸ› οΈ Getting Started

To get started, you will need:

- Basic knowledge of Python and RESTful APIs.
- Installed **Docker** and **Kubernetes** on your machine.
- Familiarity with command-line tools.

## πŸ“₯ Installation

1. **Clone the Repository**

Start by cloning the repository to your local machine:

```bash
git clone https://github.com/mos63/E2E_FULL_API_Demo.git
cd E2E_FULL_API_Demo
```

2. **Install Dependencies**

Make sure to install all required dependencies. You can do this using pip:

```bash
pip install -r requirements.txt
```

## πŸ” Usage

After installing the dependencies, you can run the API locally.

1. **Start the API**

Use the following command to run the FastAPI server:

```bash
uvicorn main:app --reload
```

2. **Access the API**

Open your browser and navigate to `http://127.0.0.1:8000/docs` to view the API documentation.

## 🌐 Deployment

To deploy the API using Docker and Kubernetes, follow these steps:

1. **Build the Docker Image**

Run the following command to build your Docker image:

```bash
docker build -t e2e_full_api_demo .
```

2. **Run the Docker Container**

After building the image, run the container:

```bash
docker run -d -p 8000:8000 e2e_full_api_demo
```

3. **Deploy to Kubernetes**

Create a Kubernetes deployment file (`deployment.yaml`) and apply it:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: e2e-full-api-demo
spec:
replicas: 2
selector:
matchLabels:
app: e2e-full-api-demo
template:
metadata:
labels:
app: e2e-full-api-demo
spec:
containers:
- name: e2e-full-api-demo
image: e2e_full_api_demo
ports:
- containerPort: 8000
```

Apply the deployment:

```bash
kubectl apply -f deployment.yaml
```

## 🀝 Contributing

We welcome contributions! If you want to help improve this project, please follow these steps:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/YourFeature`).
3. Make your changes and commit them (`git commit -m 'Add some feature'`).
4. Push to the branch (`git push origin feature/YourFeature`).
5. Open a pull request.

## πŸ“œ License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## πŸ“ž Contact

For any questions or feedback, feel free to reach out:

- **Email**: your-email@example.com
- **Twitter**: [@yourhandle](https://twitter.com/yourhandle)

## πŸ“¦ Releases

You can find the latest releases of this project [here](https://github.com/mos63/E2E_FULL_API_Demo/releases). Download the necessary files and execute them as needed.

Visit the [Releases](https://github.com/mos63/E2E_FULL_API_Demo/releases) section for more information on the latest updates.

---

Thank you for checking out **E2E_FULL_API_Demo**! We hope this project helps you in your API development journey. Happy coding!