gpt4 book ai didi

amazon-web-services - 解析程序中的AppSync GraphQL变异服务器逻辑

转载 作者:行者123 更新时间:2023-12-04 12:56:48 24 4
gpt4 key购买 nike

我在寻找良好的来源/找出如何正确地将服务器端验证添加到我的AppSync GraphQL突变中时遇到问题。

本质上,我使用AWS仪表板定义了我的AppSync模式,因此为我创建了DynamoDB表,并为数据设置了一些基本的解析器。

不,我需要实现以下目标:

  • 我有一个拥有inventorygold的球员
  • 播放器使用purchaseItem调用item_id突变
  • 一旦调用了此突变,我需要在解析器中执行一些检查,即检查item_id是否存在于关联的DynamoDB的“Items”表中,检查玩家是否有足够的金币,再次在关联的DynamoDB的“Players”表中,如果存在,则写入通过将项目添加到库存和新减去的黄金量来生成DynamoDB表的Players

  • 我相信实现此目标,降低成本和延迟的最有效方法是对AppSync使用“Apache Velocity”模板语言吗?

    非常高兴看到此示例显示如何查询/写入DynamoDB,处理错误并正确解决突变。

    最佳答案

    要使用VTL写入DynamoDB,请使用以下tutorial

    you can start with the PutItem template. My request template looks like this:

    {
    "version" : "2017-02-28",
    "operation" : "PutItem",
    "key" : {
    "noteId" : { "S" : "${context.arguments.noteId}" },
    "userId" : { "S" : "${context.identity.sub}" }
    },
    "attributeValues" : {
    "title" : { "S" : "${context.arguments.title}" },
    "content": { "S" : "${context.arguments.content}" }
    }
    }


    查询:

    { "version" : "2017-02-28",
    "operation" : "Query",
    "query" : {
    ## Provide a query expression. **
    "expression": "userId = :userId",
    "expressionValues" : {
    ":userId" : {
    "S" : "${context.identity.sub}"
    }
    }
    },
    ## Add 'limit' and 'nextToken' arguments to this field in your schema to implement pagination. **
    "limit": #if(${context.arguments.limit}) ${context.arguments.limit} #else 20 #end,
    "nextToken": #if(${context.arguments.nextToken}) "${context.arguments.nextToken}" #else null #end
    }

    This is based on the Paginated Query template.

    关于amazon-web-services - 解析程序中的AppSync GraphQL变异服务器逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52849619/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com