3

我正在探索使用 GraphQL-Django,而不是构建大量 REST API 端点。为此,我已成功安装并运行“cookbook”示例应用程序,它是 Graphene Django 包的一部分:https ://github.com/graphql-python/graphene-django

为了更好地理解 GraphQL 技术的工作原理,我尝试使用 Postman 调用 Graphene 服务器。但是我收到了一个 CSRF 错误,并尝试了几种方法来解决它,例如: Django 在使用 Fetch 的 POST 请求上返回 403 错误

但到目前为止,我还没有运气。是否有使用 Postman 和 Graphene 的权威指南?

罗伯特

4

2 回答 2

2

您可能想要使用 graphiql 而不是邮递员。但是,如果您遇到 CSRF 问题(并且希望该 url 是 CSRF 豁免的……请仔细考虑),您可以将视图包装在一个 csrf 豁免中。在你的urls.py

from django.views.decorators.csrf import csrf_exempt

url(r'^graphql', csrf_exempt(GraphQLView.as_view(graphiql=True, schema=schema))),

于 2017-06-26T11:02:04.153 回答
0

您可以使用失眠症代替邮递员。用graphql很棒。

但正如@styryx 回答的那样,您应该使用 csrf_exempt:

from django.urls import path
from django.views.decorators.csrf import csrf_exempt

from graphene_django.views import GraphQLView

urlpatterns = [
    path("graphql", csrf_exempt(GraphQLView.as_view(graphiql=True))),
]

在我的一个包的这个教程中,是一个使用失眠客户端的例子

于 2020-01-28T14:21:49.907 回答