Ejemplo n.º 1
0
def create_app():
    schemas = JSONAPISchemaGenerator(
        APISpec(
            title='Accounts Management API',
            version='1.0',
            openapi_version='3.0.3',
            info={'description': 'An example API for managing accounts.'},
            plugins=[JSONAPIMarshmallowPlugin()],
        )
    )

    # register exception handlers
    register_jsonapi_exception_handlers(app)

    # register routes
    from accounts.resources import users, organizations, teams
    users.UsersResource.register_routes(app, '/api')
    organizations.OrganizationsResource.register_routes(app, '/api')
    teams.TeamsResource.register_routes(app, '/api')
    teams.TeamUsersResource.register_routes(app)

    def openapi_schema(request):
        import json
        from starlette.responses import Response
        schema_dict = schemas.get_schema(app.routes)
        return Response(
            json.dumps(schema_dict, indent=4),
            media_type='application/json',
        )

    app.add_route('/schema', route=openapi_schema, include_in_schema=False)
    return app
Ejemplo n.º 2
0
def test_uncaught_exceptions(app):
    register_jsonapi_exception_handlers(app)
    test_client = TestClient(app)
    rv = test_client.get('/does-not-exist')
    assert rv.status_code == 404
    assert rv.headers['Content-Type'] == 'application/vnd.api+json'
    assert rv.json() == {
        'errors': [{
            'detail': 'Not Found',
        }]
    }
Ejemplo n.º 3
0
def create_app():
    # register exception handlers
    register_jsonapi_exception_handlers(app)

    # register routes
    from accounts.resources import users, organizations, teams
    users.UsersResource.register_routes(app, '/api')
    organizations.OrganizationsResource.register_routes(app, '/api')
    teams.TeamsResource.register_routes(app, '/api')
    teams.TeamUsersResource.register_routes(app)

    return app
Ejemplo n.º 4
0
def create_app():
    register_tortoise(
        app,
        db_url='postgres://*****:*****@localhost:5432/accounts',
        modules={"models": ["accounts.models"]},
        generate_schemas=True,
    )

    # register exception handlers
    register_jsonapi_exception_handlers(app)

    # register routes
    from accounts.resources import users, organizations
    users.UsersResource.register_routes(app, '/api')
    organizations.OrganizationsResource.register_routes(app, '/api')

    return app
Ejemplo n.º 5
0
def create_app():
    engine = create_engine('sqlite:///:memory:')
    Session.configure(bind=engine)
    from accounts.models import Base
    Base.metadata.create_all(engine)

    # register exception handlers
    register_jsonapi_exception_handlers(app)

    # register routes
    from accounts.resources import users, organizations, teams
    users.UsersResource.register_routes(app, '/api')
    organizations.OrganizationsResource.register_routes(app, '/api')
    teams.TeamsResource.register_routes(app, '/api')
    teams.TeamUsersResource.register_routes(app)

    return app
Ejemplo n.º 6
0
def create_app():
    register_tortoise(
        app,
        db_url='sqlite://:memory:',
        modules={"models": ["accounts.models"]},
        generate_schemas=True,
    )

    # register exception handlers
    register_jsonapi_exception_handlers(app)

    # register routes
    from accounts.resources import users, organizations, teams
    users.UsersResource.register_routes(app, '/api')
    organizations.OrganizationsResource.register_routes(app, '/api')
    teams.TeamsResource.register_routes(app, '/api')
    teams.TeamUsersResource.register_routes(app)
    return app