Вложенный объект Graphql Schema (Apollo)

У меня есть конечная точка API, которая возвращает следующие данные:

{
  "2017": {
      "May": [
           {},
           {}
       ],
       "June": []
   },
   "2018": {}
  }

Как я могу создать схему для этих вложенных объектов, поскольку кажется, что я не могу создавать вложенные объекты в схеме.

Я использую typeDefinitions с graphql-tools, который хорошо работает для объектов и массивов объектов, но я не мог найти способ решить эту проблему.

типичный вид выглядит так:

type Venue { 
  name: String, 
  url: String, 
  streetAddress: String, 
  streetAddress2: String, 
  streetAddress3: String, 
  city: String, 
  postalCode: String, 
  country: String, 
  phoneNumber: String, 
  info: String 
}

и может использоваться в другом типе следующим образом:

type Event {
    title: String,
    subTitle: String,
    slug: String,
    venues: [Venue],
    ...
}

но я не могу сделать что-то вроде:

type Calendar {
    year: {
        month: [Event]
    }
}

person Samuel    schedule 18.04.2017    source источник


Ответы (1)


попробуйте разделить вложенные объекты:

type Year {
    month: [Event]
}    

type Calendar {
    year: Year
}
person yishaiz    schedule 18.04.2017
comment
Я пробовал это, но проблема в том, что нет ключевого года, это 2017 или 2018 - person Samuel; 18.04.2017
comment
Так, может быть, fragments подойдет вам? см. Learngraphql.com/basics/fragments - person yishaiz; 19.04.2017
comment
Или, может быть, GraphQLScalar для типа Calendar, как в stackoverflow.com/a/34229603/3883957 - person yishaiz; 19.04.2017
comment
В любом случае вы можете изменить свою модель на модель с годом в собственном поле рядом с типом Year или даже в виде поля внутри самого типа Year, а затем Calendar содержит years: [Year] - person yishaiz; 19.04.2017