You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Amplify v6 POST请求报InvalidApiName错误求助

AWS Amplify v6 POST请求报错:InvalidApiName 排查方案

问题场景

在Next.js项目中使用AWS Amplify v6发起REST API POST请求时,提交表单后控制台输出错误:InvalidApiName: API name is invalid.,但已确认API名称和路径无误。相关代码如下:

初始化配置(Layout.tsx)

import { Amplify } from 'aws-amplify';
import amplifyconfig from '../src/amplifyconfiguration.json';

Amplify.configure(amplifyconfig)

请求代码(Form.tsx)

import { post } from 'aws-amplify/api'
import { useFormik } from 'formik';

export default function Form() {
    const formik = useFormik({
        initialValues: {
            firstname: "",
            lastname: "",
            email: "",
            project: "Design",
            description: "",
            terms: "",
        },

        onSubmit: async (values) => {
            if(isVerified === true) {
                try{
                    let resOperation = post({
                        apiName: 'quotes',
                        path: '/create'
                    })
                    await resOperation.response
                } catch(err) {
                    console.log(err)
                }
            }
        }
    })

    return (
        <div>form</div>
    )
}

排查方向

  • 核对amplifyconfiguration.json中的API名称
    打开项目根目录的amplifyconfiguration.json,找到aws_api节点下的name字段,确保和请求中apiName: 'quotes'完全一致(包括大小写、空格、特殊字符)。比如配置里是"name": "Quotes",请求里的小写quotes就会触发报错。
  • 确认Amplify初始化的客户端执行时机(Next.js App Router)
    Next.js App Router中,Layout.tsx默认是服务器组件,而Amplify.configure()需要在客户端环境执行。可将初始化代码移到带'use client'指令的组件,或在Layout.tsx中用useEffect包裹:
    'use client';
    import { Amplify } from 'aws-amplify';
    import amplifyconfig from '../src/amplifyconfiguration.json';
    import { useEffect } from 'react';
    
    export default function RootLayout({ children }) {
      useEffect(() => {
        Amplify.configure(amplifyconfig);
      }, []);
    
      return (
        <html lang="en">
          <body>{children}</body>
        </html>
      );
    }
    
  • 检查API云端部署状态
    终端执行amplify status,查看REST API状态是否为Deployed。若API未部署或处于Pending状态,本地配置文件不会包含有效API信息,导致名称验证失败。未部署则执行amplify push完成部署。
  • 重新拉取最新配置
    执行amplify pull从云端拉取最新Amplify配置,覆盖本地amplifyconfiguration.json,避免旧配置缓存导致的不匹配。
  • 确认POST请求v6语法完整性
    虽非当前错误直接原因,但后续传递表单数据时,v6的post方法需通过options.body传入参数:
    let resOperation = post({
        apiName: 'quotes',
        path: '/create',
        options: { body: values }
    })
    

内容的提问来源于stack exchange,提问作者juanserna8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 03:16:18