commit f077ffdf3cceabf3bca3f0cd21e90c96db7a5669 Author: Anja Freudenreich Date: Wed Mar 27 13:31:27 2024 +0100 initial commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9ed2740 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +# Dockerfile +FROM python:3.9-slim + +WORKDIR /app + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY app.py . + +CMD ["python", "app.py"] diff --git a/Dockerfile_py b/Dockerfile_py new file mode 100644 index 0000000..a23b09b --- /dev/null +++ b/Dockerfile_py @@ -0,0 +1,11 @@ +# Dockerfile +FROM python:3.9-slim + +WORKDIR /app + +COPY requirements.txt . +RUN pip install requests + +COPY player.py . + +CMD ["python", "player.py"] diff --git a/app.py b/app.py new file mode 100644 index 0000000..58e3711 --- /dev/null +++ b/app.py @@ -0,0 +1,27 @@ +# app.py +from flask import Flask, request +from werkzeug.urls import url_quote_plus + +app = Flask(__name__) + +def fizzbuzz(num): + if num % 3 == 0 and num % 5 == 0: + return "fizzbuzz" + elif num % 3 == 0: + return "fizz" + elif num % 5 == 0: + return "buzz" + else: + return str(num) + +@app.route('/fizzbuzz', methods=['POST']) +def compute_fizzbuzz(): + data = request.json + try: + number = int(data['number']) + return fizzbuzz(number) + except (KeyError, ValueError): + return "Invalid input: Please provide a valid number", 400 + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=8080) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..0fbb4e1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.8' + +services: + fizzbuzz_server: + image: fizzbuzz_app + ports: + - "8080:8080" + networks: + - fizzbuzz_network + hostname: fizzbuzz_server + + fizzbuzz_client: + image: player + depends_on: + - fizzbuzz_server + networks: + - fizzbuzz_network + +networks: + fizzbuzz_network: + driver: bridge diff --git a/player.py b/player.py new file mode 100644 index 0000000..9b20628 --- /dev/null +++ b/player.py @@ -0,0 +1,27 @@ +import requests +import json + +# Define the server adress and port +#SERVER_ADDR = "http://172.18.0.2" +#SERVER_ADDR = "http://127.0.0.1" +#SERVER_ADDR = "host.docker.internal" +SERVER_ADDR = "http://fizzbuzz_server" +SERVER_PORT =8080 + +# Define the URL for the FizzBuzz endpoint +URL = f"{SERVER_ADDR}:{SERVER_PORT}/fizzbuzz" + +try: + for number in range(1,101): + # Define the payload data (JSON format) + payload = {'number': number} + + # Send the HTTP POST request with JSON payload + response = requests.post(URL, json=payload) + + # Print the response + print(f"Number: {number}, Response: {response.text}") + +except requests.RequestException as e: + # Handle request exceptions + print("Error:", e) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..aa918eb --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +# requirements.txt +Flask==2.0.1 +Werkzeug==2.2.2