Angular невозможно пройти AWS AppSyn c (graphql API) Связь - PullRequest
0 голосов
/ 05 мая 2020

Я пишу свое первое приложение Angular, пытаясь использовать Amplify / AppSyn c для возможностей codegen / graphql. Я могу возвращать результаты из API-интерфейса graphql, однако я не вижу никаких данных [Section], связанных с панелями мониторинга. Когда я запрашиваю со страницы AppSyn c «запросы», я вижу соединение и вложенные данные. Если я console.log объект панели мониторинга, я вижу массив разделов, но он всегда пуст.

Я чувствую, что близок, но называю что-то не так (по крайней мере, я надеюсь). Есть идеи?


Модель

type Dashboard @model {
    id: ID!
    name: String!
    description: String
    slug: String
    sections: [Section] @connection(name: "DashboardSections")
}

type Section @model {
    id: ID!
    name: String!
    description: String
    dashboard: Dashboard @connection(name: "DashboardSections")
}

Создано Angular Сервис

async ListDashboards(
        filter?: ModelDashboardFilterInput,
        limit?: number,
        nextToken?: string
    ): Promise<ListDashboardsQuery> {
        const statement = `query ListDashboards($filter: ModelDashboardFilterInput, $limit: Int, $nextToken: String) {
        listDashboards(filter: $filter, limit: $limit, nextToken: $nextToken) {
          __typename
          items {
            __typename
            id
            name
            description
            slug
            sections {
              __typename
              nextToken
            }
          }
          nextToken
        }
      }`;

Мой Angular Компонент

async listDashboards() {
    let result = await this.api.ListDashboards();
    this.allDashboards = result.items;
    console.log(result);
}

Рукописный запрос, который работает из AppSyn c Консоль

query listDashboards {
  listDashboards {
    items{
      name
      id
      sections {
        items {
          name
          id
        }
      }
    }
  }
}

Обрезанные результаты

{
  "data": {
    "listDashboards": {
      "items": [
        {
          "name": "Some Dashboard XYZ",
          "id": "3374e66c-c494-AAA-b087-c5ba35a30643",
          "sections": {
            "items": [
              {
                "name": "Some Section ABC",
                "id": "1b09865b-AAA-4cf6-9a44-42f783c1ce28"
              }
            ]
          }
        },
       ...
...