기존 Tistory에 적었던 GraphQl에 대한 학습 내용을 글로 남겨보려고 한다.
implementation 'com.graphql-java-kickstart:graphql-spring-boot-starter:11.0.0'
testImplementation 'com.graphql-java-kickstart:graphql-spring-boot-starter-test:11.0.0'
graphql.servlet.mapping=/graphql
graphql.tools.schema-location-pattern=**/*.graphqls
graphql.servlet.cors-enabled=true
graphql.servlet.max-query-depth=100
graphql.servlet.exception-handlers-enabled=true
schema {
query: Query,
mutation: Mutation,
}
type Mutation {
registerMember(membersn: Int!, memberid: String!, memberemail: String!, membernumber: String!): Member
deleteMember(memberid: String!): Boolean
}
type Query{
findMembers(memberid: String!): Member!
allFindMembers: [Member]
}
type Member{
membersn: Int
memberid: String
memberemail : String
membernumber : String
}
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Entity(name="member")
public class Member{
@Id
@Column(nullable = false)
private int membersn;
@Column(nullable = false)
private String memberid;
@Column(nullable = false)
private String memberemail;
@Column(nullable = false)
private String membernumber;
}
@Service
@RequiredArgsConstructor
public class MemberQuery implements GraphQLQueryResolver{
private final MemberRepository memberRepository;
public Member findMembers(String memberId) {
List<Member> members = memberRepository.findAll();
Member member = new Member();
for(Member newMember : members) {
if(newMember.getMemberid().equals(memberId)) {
member = memberRepository.findById(newMember.getMembersn())
.orElse(null);
}
}
return member;
}
public List<Member> allFindMembers(){
List<Member> member = memberRepository.findAll();
return member;
}
}
@Service
@RequiredArgsConstructor
public class MemberMutation implements GraphQLMutationResolver {
private final MemberRepository memberRepository;
public Member registerMember(int memberSn, String memberId, String memberEmail, String memberNumber) {
Member newMember = Member.builder()
.membersn(memberSn)
.memberid(memberId)
.memberemail(memberEmail)
.membernumber(memberNumber).build();
return memberRepository.save(newMember);
}
public Boolean deleteMember(String memberId) {
List<Member> memberList = memberRepository.findAll();
int deleteChk = 0;
for(Member member : memberList) {
if(member.getMemberid().equals(memberId)) {
memberRepository.delete(member);
deleteChk += 1;
}
}
if(deleteChk > 0) {
return true;
} else {
return false;
}
}
}