From b856819a2577c3c34f2feb329f2db49f591a4fe6 Mon Sep 17 00:00:00 2001 From: David Eder Date: Sat, 15 May 2021 14:02:19 +0200 Subject: [PATCH] Add basic api for entity_ident --- .../entity_ident_service/entity_ident.py | 46 +++++++++++-------- components/entitiy_ident/mongo/cars.json | 2 +- kubernetes/minikube-ingress.yaml | 8 ++-- 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/components/entitiy_ident/entity_ident_service/entity_ident.py b/components/entitiy_ident/entity_ident_service/entity_ident.py index 3f244e0..462210e 100644 --- a/components/entitiy_ident/entity_ident_service/entity_ident.py +++ b/components/entitiy_ident/entity_ident_service/entity_ident.py @@ -1,31 +1,37 @@ -import jsonify as jsonify -from flask import Flask +from bson import json_util +from flask import Flask, request from flask_pymongo import PyMongo -# make sure mongoDB (container) is running and accessible - -# see https://flask-pymongo.readthedocs.io/en/latest/ -from pymongo import MongoClient - app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://mongo:27017/entities" mongo = PyMongo(app) -@app.route("/") -def index(): - test_results = mongo.db.cars.find() - results = [] - try: - while True: - result = test_results.next() - results.append(result) - except StopIteration: - pass - return str(results) +@app.route('/api/v1/resources/cars', methods=['GET']) +def get_cars(): + query_parameters = request.args + vin = query_parameters.get('vin') + + if vin is not None: + cars = [car for car in mongo.db.cars.find({'vin': vin})] + else: + cars = [car for car in mongo.db.cars.find({})] + + return json_util.dumps({'cursor': cars}) + + +@app.route('/api/v1/resources/traffic_lights', methods=['GET']) +def get_traffic_lights(): + query_parameters = request.args + tl_id = query_parameters.get('id') + + if tl_id is not None: + traffic_lights = [traffic_light for traffic_light in mongo.db.trafficLights.find({'id': tl_id})] + else: + traffic_lights = [traffic_light for traffic_light in mongo.db.trafficLights.find({})] + + return json_util.dumps({'cursor': traffic_lights}) -#if __name__ == '__main__': -# app.run() if __name__ == '__main__': app.run(host='0.0.0.0') diff --git a/components/entitiy_ident/mongo/cars.json b/components/entitiy_ident/mongo/cars.json index a7fbc0e..b6d5a87 100644 --- a/components/entitiy_ident/mongo/cars.json +++ b/components/entitiy_ident/mongo/cars.json @@ -12,6 +12,6 @@ { "oem": "SATURN", "modelType": "Vue2", - "vin": "5GZCZ43D13S812715" + "vin": "5GZCZ43D13S812716" } ] \ No newline at end of file diff --git a/kubernetes/minikube-ingress.yaml b/kubernetes/minikube-ingress.yaml index d0ed724..8ff816e 100644 --- a/kubernetes/minikube-ingress.yaml +++ b/kubernetes/minikube-ingress.yaml @@ -3,13 +3,15 @@ kind: Ingress metadata: name: minimal-ingress annotations: - nginx.ingress.kubernetes.io/rewrite-target: / + kubernetes.io/ingress.class: "nginx" + nginx.ingress.kubernetes.io/add-base-url: "true" + nginx.ingress.kubernetes.io/rewrite-target: /$1 + nginx.ingress.kubernetes.io/service-upstream: "true" spec: rules: - http: paths: - - path: /testpath - pathType: Prefix + - path: /entity-ident/(.+) backend: serviceName: entity-ident servicePort: 5000 \ No newline at end of file