type appSyncError struct {
Message string json:"message"
}
import "errors"
func handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { //在此处进行Lambda函数的逻辑处理
if err != nil {
errMsg := errors.New("自定义错误消息")
return events.APIGatewayProxyResponse{Body: errMsg.Error(), StatusCode: 400}, errMsg
}
}
type Mutation { #定义一个返回类型为appSyncError的mutation,命名为customErrorMutation customErrorMutation(input: CustomErrorInput!): appSyncError }
#定义appSyncError解析器,匹配go lambda函数返回的appSyncError结构体 type appSyncErrorResolver { rawPayload: String message: String }
#使用resolvers指令声明appSyncError解析器的实现函数
@resolvers(class: "com.example.resolvers.ErrorResolvers")
}
package com.example.resolvers
import com.amazonaws.services.lambda.runtime.Context;
public class ErrorResolvers {
public appSyncError appSyncError(UserException ex, Context context) { appSyncError error = new appSyncError(); error.setMessage(ex.getMessage());
return error;
}
}
使用以上步骤,可以在Appsync与Go Lambda Resolver的使用过程中进行灵活的错误处理。