https://launchpad.graphql.com/mw9wkzv99
단순 전체쿼리+조건쿼리+추가
http://graphql.org/graphql-js/passing-arguments/
참고. random ID는 crypto 1.0.1 사용
단순 전체쿼리+조건쿼리+추가
http://graphql.org/graphql-js/passing-arguments/
참고. random ID는 crypto 1.0.1 사용
type Query {
Members: [member]
getMember(id: ID!): member
}
type member {
id: ID!
text: String
}
input memberInput {
text: String
}
type Mutation {
addMember(member: memberInput): member
}
SQL 정의. facebook 쪽은 스트링에 지지는 거 진짜 좋아하네. *.gql 파일이 있다고 하니 이해해주자.
resolver는
var buffer = [];
const resolvers = {
Query: {
Members: (root, args, context) => {
return buffer;
},
getMember: (id)=> {
return buffer.find(o=>o.id)
}
},
Mutation: {
addMember(_, {member}) {
const mm = { ...member, id:randomBytes(10).toString('hex') };
buffer.push(mm);
return mm;
}
}
};
평범 평범.
다음으로 pub/sub 연습.
type Subscription {
memberAdded: member
}
member가 added되는 순간을 감시.
import { PubSub, withFilter } from 'graphql-subscriptions';
const pubsub = new PubSub();
pub/sub 관련 package 추가. filter는 조건 검색용으로 보임.
pub/sub은 https://github.com/apollographql/graphql-subscriptions 를 사용한다.
추가 구현은 두군데.
먼제 Mutation addMember에서 이벤트를 발생하도록 함
pubsub.publish('memberAdded', {
memberAdded: mm
});
이제 추가할때마다 memberAdded를 publish함.
Subscription: {
memberAdded: {
subscribe: () => pubsub.asyncIterator('memberAdded'),
}
}
subscriptions을 만들어본다.
잘 안된다. 무엇이 문제일까.
subscriptions 예제가 없다.
혹시 issue엔 없을까
https://github.com/apollographql/launchpad/issues/15 websocket을 지원안한다고 한다. 망했네.
댓글
댓글 쓰기