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)
示例#2
0
    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)
示例#3
0
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,
示例#4
0
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):
示例#5
0
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):