Vue -apollo. Запросы не работают return 400 Bad Request - PullRequest
0 голосов
/ 23 января 2020

Я создаю фронтенд с Vue cli и бэкэнд с Django с графеном. Мутация работает нормально, но не запросы.

Когда я запускаю тот же запрос из GraphiQL, работает отлично.

Внешний интерфейс

  • @ vue / cli 4.1.2
  • vue -apollo 3.0.2

Backend

  • python 3.8
  • django 3.0.2
  • графен- django 2.8.0
  • django -graphql-jwt 0.3.0

запросов. js

import gql from 'graphql-tag'

export const ME_QUERY = gql`
    query me { 
        me {
            username
            is_active
        }
    }
`

Home. vue

<script>
import { ME_QUERY } from '@/graphql/queries'

export default {
  name: 'home',
  async mounted () {
    await this.$apollo
      .query({
        query: ME_QUERY
      })
      .then((result) => {
        console.log(result)
      })
      .catch(({ graphQLErrors }) => {
        graphQLErrors.map(({ message, locations, path }) => console.log(`Error Message: ${message}, Location: ${locations}, Path: ${path}`))
      })
  }
}
</script>

schema.py

from django.contrib.auth import authenticate, login, get_user_model
import graphene
from graphene_django import DjangoObjectType
import graphql_jwt
from graphql_jwt.decorators import jwt_cookie

class UserType(DjangoObjectType):
    class Meta:
        model = get_user_model()

class ObtainJSONWebToken(graphql_jwt.JSONWebTokenMutation):
    user = graphene.Field(UserType)

    @classmethod
    def resolve(cls, root, info, **kwargs):
        return cls(user=info.context.user)

class Query(graphene.ObjectType):
    me = graphene.Field(UserType)

    def resolve_me(root, info):
        user = info.context.user
        if user.is_anonymous:
            raise Exception('Authentication failure!!')
        return user


class Mutation(graphene.ObjectType):
    # token_auth = graphql_jwt.ObtainJSONWebToken.Field()
    verify_token = graphql_jwt.Verify.Field()
    refresh_token = graphql_jwt.Refresh.Field()
    revoke_token = graphql_jwt.Revoke.Field()
    log_in = ObtainJSONWebToken.Field()


schema = graphene.Schema(query=Query, mutation=Mutation)

Спасибо за продвижение

1 Ответ

0 голосов
/ 23 января 2020

после установки расширения Graphql в Firefox и обнаружил мою ошибку.

{
  "errors": [
    {
      "message": "Cannot query field \"is_active\" on type \"UserType\". Did you mean \"isActive\"?",
      "locations": [
        {
          "line": 4,
          "column": 5
        }
      ]
    }
  ]
}

Изменение на isActive запрос работал нормально.

...