Я использую AWS AppSync и Amplify. Фрагмент моей схемы GraphQL выглядит следующим образом:
type Inspection @model {
id: ID!
name: String!
date: AWSDate!
photos: [Photo] @connection(name: "InspectionPhotos")
}
type Photo @model {
id: ID!
inspection: Inspection! @connection(name: "InspectionPhotos")
photo: String!
}
РЕДАКТИРОВАТЬ: Вот фрагмент моей сгенерированной схемы:
input CreateInspectionInput {
id: ID
name: String!
date: AWSDate!
}
input CreatePhotoInput {
id: ID
photo: String!
photoInspectionId: ID!
}
type Inspection {
id: ID!
name: String!
date: AWSDate!
photos(
filter: ModelPhotoFilterInput,
sortDirection: ModelSortDirection,
limit: Int,
nextToken: String
): ModelPhotoConnection
}
type Photo {
id: ID!
inspection: Inspection!
photo: String!
}
type Mutation {
createInspection(input: CreateInspectionInput!): Inspection
updateInspection(input: UpdateInspectionInput!): Inspection
deleteInspection(input: DeleteInspectionInput!): Inspection
createPhoto(input: CreatePhotoInput!): Photo
updatePhoto(input: UpdatePhotoInput!): Photo
deletePhoto(input: DeletePhotoInput!): Photo
}
Я хочу создать новую фотографию, поэтому мой ввод выглядит следующим образом:
CreatePhotoInput createPhotoInput = CreatePhotoInput.builder()
.photoInspectionId(inspectionId)
.photo(getS3Key(localPath))
.build();
Но при создании приведенной ниже мутации я получаю сообщение о том, что поле inspection
в CreatePhotoMutation.CreatePhoto
ожидает объект типа CreatePhotoMutation.Inspection
, а не строку.
final CreatePhotoMutation.CreatePhoto expected =
new CreatePhotoMutation.CreatePhoto(
"Photo",
UUID.randomUUID().toString(),
CreatePhotoInput.photoInspectionId(),
CreatePhotoInput.photo());
Как я могу выполнить эту мутацию, передавая только photoInspectionId?
Я что-то упустил, так как я новичок в Android и AppSync ...