GraphQLでは、DynamoDBへのアクセスだけではなくLambda関数に処理を実行させることができます。
これは、AWS側にある情報に対して、GraphQLを使ってアクセスが可能になるため、IFの煩雑さをなくす点では良いと考えています。
具体的に見ていきます。
############################################
# Input
############################################
input CreateUserInputAPI
{
mail: String
username: String
company_name: String
}
############################################
# Result
############################################
type CreateUserResultAPI
{
result: String
username: String
reason:String
}
############################################
# Query/Mutation
############################################
type Mutation {
# User Infomation
createUserAPI(input:CreateUserInputAPI!) :CreateUserResultAPI @function(name:"CreateUserAPI")
}
上記の例では、後半部分の”type Mutation”内で”CreateUserAPI”というLambda関数を実行することができます。
インプットは、”CreateUserInputAPI”を渡し、
結果は、”CreateUserResultAPI”で受け取る様にしています。
こうすることで、例えばUser登録時に特殊な処理(AWS側で行いたい処理)をLambda関数で実行することができます。
(IT改善のご相談はこちら)