Amplify CLI создает из коробки listTracks
запрос + распознаватель и tracks
распознаватель для типа Country
.Если вы хотите отфильтровать все дорожки на основе идентификатора страны, вам нужно будет добавить это вручную, выполнив следующие шаги, которые по сути представляют собой сочетание сгенерированных выше обработчиков запросов +:
-> В вашей схеме : добавьте это в type Query
, а затем нажмите «Сохранить схему»:
listTracksByCountry(countryId: ID!, limit: Int, nextToken: String, sortDirection: ModelSortDirection): ModelTrackConnection
-> Присоедините Resolver кэто поле запроса, которое вы только что добавили, и нажмите «Сохранить решатель»:
#set( $limit = $util.defaultIfNull($context.args.limit, 10) )
{
"version": "2017-02-28",
"operation": "Query",
"query": {
"expression": "#connectionAttribute = :connectionAttribute",
"expressionNames": {
"#connectionAttribute": "trackCountryId"
},
"expressionValues": {
":connectionAttribute": {
"S": "$context.args.countryId"
}
}
},
"scanIndexForward": #if( $context.args.sortDirection )
#if( $context.args.sortDirection == "ASC" )
true
#else
false
#end
#else
true
#end,
"filter": #if( $context.args.filter )
$util.transform.toDynamoDBFilterExpression($ctx.args.filter)
#else
null
#end,
"limit": $limit,
"nextToken": #if( $context.args.nextToken )
"$context.args.nextToken"
#else
null
#end,
"index": "gsi-CountryTrack"
}
#if( !$result )
#set( $result = $ctx.result )
#end
$util.toJson($result)
-> Перейдите в раздел Запросы на консоли и выполните следующий запрос:
query {
listTracksByCountry(countryId: "countryId1") {
items {
id
name
length
}
}
}
Вы сможете получить список треков для указанной страны.В моем случае вывод GraphQL для вышеуказанной операции был следующим:
{
"data": {
"listTracksByCountry": {
"items": [
{
"id": "trackId1",
"name": "track name 1",
"length": 1.1
},
{
"id": "trackId2",
"name": "track name 2",
"length": 1.2
}
]
}
}
}
Это очень распространенный вариант использования, поэтому не стесняйтесь создавать проблему здесь , если это не так.еще не существует, и мы можем использовать Amplify CLI (amplify add api
), автоматически генерировать эти средства распознавания.