TP-Docker/api-frontend/api.py

54 lines
1.3 KiB
Python
Raw Normal View History

2019-04-25 17:42:31 +02:00
#!/usr/bin/python2.7
# coding: utf-8
# Author : Alexandre Jauneau
import os
import sys
import requests
from flask import Flask, jsonify, request
app = Flask(__name__)
try:
api_backend_url = os.environ.get('API_BACKEND_URL')
except:
print("L'Adresse de l'API n'est pas défini. Elle doit être définie dans une variable d'environnement nommé 'API_BACKEND_URL'")
try:
api_backend_port = os.environ.get('API_BACKEND_PORT')
except:
print("Le port de l'API n'est pas défini. Il doit être défini dans une variable d'environnement nommé 'API_BACKEND_PORT'")
if api_backend_url and api_backend_port:
api_backend = 'http://{}:{}'.format(api_backend_url, api_backend_port)
@app.route('/')
def index():
"""
Fait un call à l'API backend et renvoit le resultat au format JSON
"""
response = {}
api_call = requests.get(api_backend)
if api_call.status_code != 200:
response['error_message'] = 'GET / on backend API {}'.format(
api_call.status_code)
else:
response = api_call.json()
return jsonify(response)
@app.route('/traceback')
def traceback():
"""
Termine l'application avec un code erreur 1
"""
os._exit(1)
return
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=8000)