Получение «Неподдерживаемого элемента «$[операция]». » при выполнении мутации

#aws-amplify #aws-appsync #aws-amplify-cli

#aws-усиление #aws-синхронизация приложений #aws-усиление-cli

Вопрос:

У меня возникла проблема с запуском мутации, которая была сгенерирована CLI Amplify.
Я нахожусь на узле v14.18.1, CLI amplify 7.6.2.

Я только недавно перешел на GraphQL Transformer v2.

Вот моя модель:

 type User  @model  @auth(  rules: [  { allow: groups, groups: ["admin"] }  { allow: owner, ownerField: "id", operations: [read] }  ]  ) {  id: ID!   first_name: String  last_name: String  email: String!  customer: Customer @hasOne(fields: ["userCustomerId"])  userCustomerId: ID! @index(name: "usersByCreatedAt", queryField: "usersByCreatedAt" sortKeyFields: ["createdAt"])  createdAt: String!  isAdmin: Boolean }   

Мутация, которую я вызываю из AppSync:

 mutation UpdateUser {  updateUser(input: {id: "asdfasdfasdf", isAdmin: true, last_name: "Franklin", first_name: "Tim", email: "tim@tim.com", userCustomerId: "my_customer"}) {  id  } }  

Ошибка:

 {  "data": {  "updateUser": null  },  "errors": [  {  "path": [  "updateUser"  ],  "data": null,  "errorType": "MappingTemplate",  "errorInfo": null,  "locations": [  {  "line": 2,  "column": 3,  "sourceName": null  }  ],  "message": "Unsupported element '$[operation]'."  }  ] }  

Кто-нибудь сталкивался с этой ошибкой, и как вы ее разрешили? Спасибо!

Ответ №1:

Проверьте, есть ли в нем какие-либо .vtl файлы project_dir/amplify/backend/api/api_name/resolvers . Если они есть, и вы не уверены, почему/не распознаете их , создайте резервную копию и удалите эти файлы, разверните свой локальный сервер amplify push и посмотрите, удастся ли мутация.

Я получал точно такую же ошибку во время мутации удаления, и это решило ее для меня. CLI Amplify автоматически генерирует шаблоны для службы API, но переопределяет их любыми, найденными в этом каталоге. Просто не забудьте создать резервную копию всех этих файлов, прежде чем удалять их на всякий случай..

Комментарии:

1. Это действительно решило проблему для меня. Спасибо за информацию!