def initialize_api(application): api = MongoRest(application) def_methods = [ methods.Create, methods.Update, methods.Fetch, methods.List, methods.Delete, ] # Restful API endpoints go here @api.register(name="users", url="/users/") class UserView(ResourceView): resource = UserResource methods = def_methods application.register_blueprint(health)
app.config.update( MONGODB_HOST= 'mongodb://cluster0-shard-00-00-aaxvq.mongodb.net:27017,cluster0-shard-00-01-aaxvq.mongodb.net:27017,cluster0-shard-00-02-aaxvq.mongodb.net:27017/%s?ssl=true&authSource=admin&retryWrites=true&w=majority' % DB_NAME_REMOTE, MONGODB_USERNAME='******', MONGODB_PASSWORD=mongo_pass) elif DB_MODE == 'local': app.config.update( MONGODB_HOST='localhost', MONGODB_PORT=27017, MONGODB_DB='mongorest_example_app', ) db = MongoEngine(app) api = MongoRest(app) class ColorGroup(db.Document): primary = db.StringField(max_length=128) secondary = db.StringField(max_length=128) grayscale = db.BooleanField() updated_at = DateTimeField(default=datetime.now()) @classmethod def pre_save(cls, sender, document, **kwargs): document.updated_at = datetime.datetime.now() class SiteGetter(db.EmbeddedDocument): src = db.StringField(max_length=128)
from db import DB APP = flask.Flask(__name__) ENV = os.getenv('ENV', 'local') if ENV == 'ci': APP.config.from_pyfile('configs/circleci.conf') elif ENV == 'production': APP.config.from_pyfile('configs/production.conf') else: APP.config.from_pyfile('configs/local.conf') APP.secret_key = APP.config.get('SECRET_KEY') API = MongoRest(APP) DB.init_app(APP) CORS = CORS(APP, resources={r"/comments/*": {"origins": "*"}}) @API.register(name='comments', url='/comments/') class CommentView(views.ResourceView): """ Comment view class """ authentication_methods = [JwtTokenAuthentication] resource = CommentResource methods = [ methods.Create, methods.List, methods.Fetch, methods.Delete,
app.config['MQTT_USERNAME'] = '******' # Username de conexion al broker app.config[ 'MQTT_PASSWORD'] = '******' # Password de conexion al broker app.config[ 'MQTT_KEEPALIVE'] = 90 # Intervalo de tiempo de envio de PING al broker app.config[ 'MQTT_TLS_ENABLED'] = False # Parametro de seguridad SSL para cifrado de los datos #-------------------------------------INSTANCIACION DE LOS MODULOS WEATHERTASKS------------------------------------- #Mediante la declaracion de las variables db, api, mqtt realizamos el encapsulamiento de las librerias necesarias #como MongoEngine, Mqtt y MongoRest las cuales crean un contexto de aplicacion que da lugar a manejar los datos de #WEATHERTASKS a nivel de paso de mensajes MQTT, Manejador de colecciones de base de datos MONGODB e interfaces de #servicios web REST para interactuar con los modelos definidos para el aplicativo. db = MongoEngine(app) api = MongoRest(app) mqtt = Mqtt(app) from app import views, models from models import * from app.dataHandler import DataHandler #--------------------------------------Declaracion de la API REST---------------------------------------------------- #Mediante la declaracion de la API REST se realiza el encapsulamiento de los modelos de base de datos creados en #MongoDB para exponerlos mediante servicios web REST a traves de internet y asi realizar la manipulacion de los datos #Cada entidad del prototipo tiene su modelo de base de datos con su CRUD (Create, Request, Update y Delete). Mediante #la definicion de las clases manejadoras de cada coleccion de base de datos y las reglas de busqueda en las consultas #se realiza toda la creacion del modelo de datos del aplicativo WeatherTasks. class TerrainResource(Resource):
app.url_map.strict_slashes = False app.config.update( DEBUG=True, TESTING=True, MONGODB_SETTINGS={ 'HOST': 'localhost', 'PORT': 27017, 'DB': 'mongorest_example_app', 'TZ_AWARE': False, }, ) db = MongoEngine() api = MongoRest() class UserResource(Resource): document = documents.User schema = schemas.User filters = {'datetime': [ops.Exact]} @api.register() class UserView(ResourceView): resource = UserResource methods = [Create, Update, Fetch, List, Delete] class ContentResource(Resource):