Beispiel #1
0
    async def _init_views(self, app: web.Application):
        """
        Инициализация роутов, CORS-прав и доступных CRUD-методов
        @param app: приложение
        """
        # добавление контекста данных для view
        app.context = {
            'config': self._config,
            'db': self._db,
            'auth': self._auth
        }
        # инициализация GraphQL-view
        gqil_view = get_view(context=app.context, graphiql=True)
        gql_view = get_view(context=app.context, graphiql=False)

        # добавление graphiql-endpoint
        app.router.add_route('*', '/graphiql', gqil_view, name='graphiql')
        resource = self._app.router.add_resource('/graphql')
        # добавление CORS-прав
        await self._setup_cors(resource)
        # добавление всех доступных методов
        resource.add_route('*', gql_view)