Хорошо, я посмотрю на это. Спасибо. Я обновлю здесь, если что-нибудь получу.

могу заставить GraphQL распознать скалярный тип JSON.

Я следовал за [документами Аполлона] (http://dev.apollodata.com/tools/graphql-tools/scalars.html#Using-a-package) чтобы определить скалярный тип JSON GraphQL для моей схемы:

Схема:

const SchemaDefinition = `
   scalar JSON
   schema {
     query: Query
     mutation: Mutation
  }
`

export default [
  SchemaDefinition,
  Query,
  Mutation,
  ...
]

Тип теста:

const Test = `
  type Test {
    bodyJson: JSON
 }`

Резольвер:

import GraphQLJSON from 'graphql-type-json'

const QueryResolver = {
  Query: {
    viewer(root, args, ctx) {
      return User.query()
        .where('id', ctx.state.user)
        .first()
     }
  }
}

const scalarJSON = {
  JSON: GraphQLJSON
}

export default {
  ...QueryResolver,
  ...ViewerResolver,
  ...scalarJSON
  ...
}

Я использую PostgreSQL, и столбец, который я запрашиваю (body_json), имеет тип данных jsonb.

Если я проверяю свою схему через GraphiQL, когда я возвращаю значение прямо из БД (я использую Knex для запроса), я получаю это сообщение об ошибке от GraphQL:

Ожидаемое значение типа \ "JSON \", но получено: [объект Object]

Если я сначала использую JSON.stringify для возвращаемого значения, я получаю эту ошибку:

"Ожидается значение типа \" JSON \ ", но получено: {\" key \ ": \" test \ "}"

Любое предложение относительно того, что я могу делать неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос