AWS Amplify API 입력 유효성 검사를 수행하는 방법
이 기사는 무엇입니까
type Blog @model {
id: ID!
name: String!
posts: [Post] @connection(name: "BlogPosts")
}
type Post @model {
id: ID!
title: String!
blog: Blog @connection(name: "BlogPosts")
comments: [Comment] @connection(name: "PostComments")
}
type Comment @model {
id: ID!
content: String
post: Post @connection(name: "PostComments")
}
@model
와 @connection
는 지시성이라고 불리며 schema가 해석기를 어떻게 생성하는지 제어한다(대략)..vtl
파일[1]을 직접 편집해야 합니다.나는 그 방법을 비망록으로 남겼다.전제 조건
문제 설정
다음 schema를 정의할 때 id의 길이에 대한 제한을 설정합니다.(예: 공백 및 50자 미만 금지)
schema.graphql
type Fav @model
@key(fields:["owner", "id"])
owner: ID!
id: ID!
}
절차.
(Amplifyapi의 추가로 앞당겨 완성...)
해석기를 생성하기 위해
amplify push
실행 ProjectRoot
|- amplify
|- backend
|- api
|- yourApiName
|- build
| |- resolvers --- ※ここに生成される
|
|- resolvers -------- ※ここにコピーして保存する
두 번째 단계에 따라 지정된 폴더.vtl
에 파일을 저장하면 자동으로 생성된 해석기가 무시됩니다.따라서 데이터 구조 등을 중도에 바꾸면 낡은 해석기를 삭제한다
(略)
+ ## Custom for input validation
+ #if($util.isNullOrBlank($ctx.args.input.id))
+ $util.appendError("id must exist", "id", null, $ctx.args.input.id)
+ #end
+ #if($ctx.args.input.id.length() > 50))
+ $util.appendError("The request would not be proper", "id", null, ctx.args.input.id)
+ #end
+ #if($ctx.outErrors.size() > 0)
+ #return($ctx.outErrors)
+ #end
## [Start] Set the primary @key. **
#set( $modelObjectKey = {
"owner": $util.dynamodb.toDynamoDB($ctx.args.input.owner),
"id": $util.dynamodb.toDynamoDB($ctx.args.input.id)
} )
## [End] Set the primary @key. **
## [Start] Prepare DynamoDB PutItem Request. **
(略)
amplify push
.끝말
수고하셨습니다.이상은 설정 방법입니다.신중을 기하기 위해 AppSync 콘솔 등을 사용하여 타겟별로 검증되었는지 확인해 보십시오.
각주
사용자 정의 카탈로그를 만드는 방법도 있죠 앰플리파이 문서에 해설이 있긴 하지만 그걸 할 끈기가 없어서...↩︎
Reference
이 문제에 관하여(AWS Amplify API 입력 유효성 검사를 수행하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/foxtail88/articles/86e6032b3aedeb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)