将非平凡的单表动态发电机连接到React前端有哪些选择?

问题描述

将非平凡的单表动态发电机连接到React前端有哪些选择?我正在使用cognito用户池/身份验证,并使其与带有自定义组件的Amplify auth配合得很好,但是我对单个表ddb的访问模式似乎不能与Amplify api graphql方法一起很好地工作。

那么,有没有一种方法可以调用端点(例如http api网关),而无需使用amplify来处理使用了cognito身份验证的身份?

非常感谢任何帮助/建议。

解决方法

我已经构建了一个React应用,并将其通过REST API连接到我的后端(Cognito,API Gateway,Lambda,DynamoDB等)。我的DDB是单个表。我在前端使用了AWS Amplify,并且运行良好。

以下是使用AWS Amplify拨打我的后端电话的摘要


import {API,Auth} from "aws-amplify";


export default function MyComponent() {

  // variables,hooks,etc. go here

  async function handleSubmit(widget) {
    let widget = await createWidget(widget);
    // do stuff with widget
  } 

  async function createWidget(widget) {

    try {
      const args = {
        headers: {
          Authorization: `Bearer ${(await Auth.currentSession())
            .getIdToken()
            .getJwtToken()}`
        },body: {
          // data to send to my API goes here
        }
      };
    
      return API.post("my_api","/widgets",args);
    } catch (e) {
      // do error handling
    }
  }

  return (
    // form with onSubmit=handleSubmit(widget)
  );
}

在此代码段中,我使用Aplify的Auth和API类对后端进行调用。我的应用程序使用JWT令牌对我的API进行经过身份验证的调用,因此我使用Amplify的Auth类来获取需要与请求一起发送的令牌(在标头中)。我没有使用graphql,但是我怀疑过程是相似的。

如果您不想要使用Amplify,我不明白为什么您不能只直接向您选择的客户端查询API。

您说您的访问模式似乎不适用于Amplify。您能详细说明为什么吗?