当前位置: 首页 > 面试题库 >

如何将Graphene GraphQL框架与Django REST框架一起使用

霍财
2023-03-14
问题内容

我在Django中有一些REST API端点,我想对Graphene使用相同的身份验证。该文档不提供任何指导。


问题答案:

例如,如果authentication_classes = (TokenAuthentication,)在API视图中使用,则可以将端点添加到以这种方式装饰的GraphQLView中:

urls.py:

# ...
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import authentication_classes, permission_classes, api_view

def graphql_token_view():
    view = GraphQLView.as_view(schema=schema)
    view = permission_classes((IsAuthenticated,))(view)
    view = authentication_classes((TokenAuthentication,))(view)
    view = api_view(['GET', 'POST'])(view)
    return view

urlpatterns = [
# ...
    url(r'^graphql_token', graphql_token_view()),
    url(r'^graphql', csrf_exempt(GraphQLView.as_view(schema=schema))),
    url(r'^graphiql', include('django_graphiql.urls')),
# ...

请注意,我们添加了一个新的^graphql_token端点,并保留^graphql了GraphiQL工具使用的原始端点。

然后,您应该Authorization在GraphQL客户端中设置标头并指向graphql_token端点。

更新:请参阅此GitHub问题,其中人们提出了替代解决方案和完整的工作示例。



 类似资料:
  • 我尝试将一个play框架示例连接到一个oracle 10g数据库,因此我使用了以下字符串连接: 我尝试了不同的方法(在每行放入< code>"",尝试用< code>localhost代替我的侦听器的ip地址,...)但是什么都不管用。

  • 当我要求一个图像http://127.0.0.1:8000/api/images/1/或者传入参数进行裁剪http://127.0.0.1:8000/api/images/1/?height=320 我得到的答复是: 而在http://127.0.0.1:8000/api/images/ 答复是: 为什么缩略图不容易返回主机名,我如何将基本网址追加到响应中? 以下是我的看法。派克

  • 问题内容: 这是我的架构: 这是代码: 在包含了用户的。 该代码有效,除非添加了。我使用来过滤结果,仅获取我关注的用户的图片,但是console.log向我显示搜索结果是不确定的,但是当我不编写查询时,就会得到图片,但我会获取所有图片,而不仅是我关注的用户的图片。 有什么解决方案吗…? 谢谢前进! 编辑: 编辑: 问题答案: Mongoose不会对的参数进行任何基于模式的转换,因此您需要将字符串I

  • 问题内容: Vaadin似乎在向两个方向推进: Vaadin框架(Java-服务器端) Vaadin元素(Javascript-客户端) 它们是否打算现在或将来一起使用?还是只有2种独立的,不相关的产品? 例如 ,Vaadin网格元素(不要与Vaadin 7的Java Grid混淆)是否打算在“ Java-land”中使用? 我在“ 服务器端元素”一文中找到了有关从服务器端创建/操作Javascr

  • 我使用的是Spring framework(不是Spring Boot)版本5。 我如何强制Spring framework使用我的日志框架,例如log4j2? Log4J-Web-2<...> LOG4J-JCL-2<...> log4j-jul-2<...> 通用日志-1.2 Spring仍然忽略log4j2.xml设置,并输出到控制台上的StdErr。