이전 글에서 사용하지 않은 인자 전달 및 mutation 작성 방법만 정리하고 끝내겠다.

 

1. 조회 쿼리 인자 전달

 

그림 1. 인자를 함께 받는 서비스 코드

이전의 조회 함수에서 딱 하나 추가되었다. 

메소드 선언부 파라미터 전달부를 보면 @GraphQLArgument annotation이 있다. 

클라이언트에서 전달할 인자의 이름을 등록하는 것이다. 

그림 2. 쿼리 조회 시

인자를 등록하게 되면, graphiql에서 자동 완성으로 인자 입력 구간에서 ctrl + space bar로 인자가 검색되는 것을 알 수 있다. 

 

제대로 실행이 되었다면, 그림 1의 출력 함수에서 인자값을 출력하는 것을 확인할 수 있다. 

 

2. 입력/수정/삭제 쿼리 (mutation)

 

그림 3. mutation 등록

@GraphQLMutation annotation으로 해당 함수가 mutation 기능을 가진다고 명세한다. 

query(조회)와 사실 똑같다. RESTful 방식의 method가 그저 명세인 것 처럼 사실상 query와 mutation의 차이도 명세의 수준이다. 선언해놓고 딴짓 할 수 있다. 

 

그림 4. mutation 실행
그림 5. 실행 결과

query나 mutation이나 정말 결국 똑같다. query라고 특별한게 있고 mutation이라고 입출력에 대단한게 있는 것이 아니라 진짜 API를 명세하는 새로운 방법일 뿐이다. 

+ Recent posts