बटन क्लिक पर मैंने एक ग्राफकल एपीआई को कॉल करने के लिए प्रोग्राम किया है जो लैम्ब्डा फ़ंक्शन से जुड़ा है और फ़ंक्शन डायनेमोडब टेबल से डेटा खींच रहा है। क्वेरी कोई त्रुटि उत्पन्न नहीं करती है, लेकिन यह मुझे कोई परिणाम भी नहीं देती है। मैंने क्लाउडवॉच लॉग की भी जांच की है और मुझे फ़ंक्शन के किसी भी निशान को कॉल नहीं किया जा रहा है। मैं यहां जो लापरवाह गलती कर रहा हूं, उस पर यकीन नहीं है।

यहाँ मेरी एपीआई है

void findUser() async {
  try {
    String graphQLDocument = '''query getUserById(\$userId: ID!) {
    getUserById(userId: \$id) {
    id
    name
  }
}''';

    var operation = Amplify.API.query(
        request: GraphQLRequest<String>(
            document: graphQLDocument,
            variables: {'id': 'USER-14160000000'}));

    var response = await operation.response;
    var data = response.data;

    print('Query result: ' + data);
  } on ApiException catch (e) {
    print('Query failed: $e');
  }
}

यहाँ मेरा लैम्ब्डा फ़ंक्शन है -

const getUserById = require('./user-queries/getUserById');
exports.handler = async (event) => {
   var userId = event.arguments.userId;
   var name = event.arguments.name;
   var avatarUrl = event.arguments.avatarUrl;
   //console.log('Received Event - ', JSON.stringify(event,3));
   console.log(userId);
   switch(event.info.fieldName) {
       case "getUserById": 
           return getUserById(userId);
   }
 };

const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region: 'ca-central-1'});

async function getUserById(userId) {
    const params = {
        TableName:"Bol-Table",
        KeyConditionExpression: 'pk = :hashKey and sk = :sortKey',
        ExpressionAttributeValues: {
            ':hashKey': userId,
            ':sortKey': 'USER'
        }
    };
    try {
        const Item = await docClient.query(params).promise();
        console.log(Item);
        return { 
            id: Item.Items[0].pk, 
            name: Item.Items[0].details.displayName,
            avatarUrl: Item.Items[0].details.avatarUrl,
            createdAt: Item.Items[0].details.createdAt,
            updatedAt: Item.Items[0].details.updatedAt
        };
    } catch(err) {
        console.log("BOL Error: ", err);
    }
 }
 
 module.exports = getUserById;

बटन पर क्लिक करने पर मुझे यह मिलता है यहां छवि विवरण दर्ज करें

0
Sumchans 4 नवम्बर 2021, 02:58
क्या आप अपने ग्राफ़ QLDocumnet को String graphQLDocument = '''query getUserById(\$id: ID!) { getUserById(userId: \$id) { id name } }'''; में बदलने का प्रयास कर सकते हैं, आपका चर $userId और फिर $id है। इसे अपने वैरिएबल ऑब्जेक्ट जैसे दोनों जगहों पर $id कॉल करने का प्रयास करें।
 – 
Andrija
4 नवम्बर 2021, 07:53
आप सही हैं। क्या आप कृपया अपनी टिप्पणी को उत्तर के रूप में रख सकते हैं?
 – 
Sumchans
5 नवम्बर 2021, 20:24

2 जवाब

सबसे बढ़िया उत्तर

मेरी टिप्पणी को उत्तर में ले जाना:

क्या आप अपना ग्राफ QLDocumnet को बदलने का प्रयास कर सकते हैं

String graphQLDocument = '''query getUserById(\$id: ID!) {
     getUserById(userId: \$id) { 
            id
            name
     }
}'''; 

आपका चर $userId और फिर $id है। इसे $id दोनों जगहों पर कॉल करने का प्रयास करें जैसे कि आपके वेरिएबल ऑब्जेक्ट में।

1
Andrija 7 नवम्बर 2021, 12:27

आपका स्पंदन कोड ठीक काम कर रहा है, लेकिन लैम्ब्डा में aws से कुछ भी प्रिंट नहीं करने के लिए रिक्त स्ट्रिंग "" लौटा रहा है

1
Ruchit 4 नवम्बर 2021, 04:47
सॉरी रुचित, आपने जो कहा वह ठीक से समझ में नहीं आया। मैं लैम्ब्डा पर आईडी मान वापस कर रहा हूँ। क्या आप उत्तर के लिए कुछ कोड के साथ विस्तृत कर सकते हैं।
 – 
Sumchans
4 नवम्बर 2021, 06:39