graphQL
-
Apollo란?WEB 2020. 12. 5. 15:54
Apollo란? GraphQL의 클라이언트 라이브러리 중 하나로 상태 관리 플랫폼 Vue, Angular, React를 모두 지원함 특징 Query와 Mutation을 직접 전송 API를 호출하기 위해 HTTP 요청을 신경 쓸 필요 없음(Fetch, Axios 필요 없음) 전송받은 데이터 캐싱 Query를 통해 전송받은 데이터를 자동으로 캐싱해 서버의 부하를 줄일 수 있음 크롬 브라우저 Apollo Client Develop Tools 익스텐션을 설치하면 캐시 상태와 정보를 확인 가능 Local State 관리 클라이언트의 Local State를 만들어 Query, Mutation, Resolver 사용 가능 GraphQL 서버에 지정되어 있는 type 중에서 필드를 생성해야함 클라이언트에서 생성한 Lo..
-
[Vue] Vue Apollo GraphQL Authorization(Nest.js)JavaScript/Vue 2020. 12. 4. 11:06
1. Nest.js Auth module GraphQL로 Guard를 사용하려면 AuthGuard 클래스의 getRequest() 메소드를 오버라이드 해야함 @Injectable() export class JwtAuthGuard extends AuthGuard('jwt') { getRequest(context: ExecutionContext) { const ctx = GqlExecutionContext.create(context); return ctx.getContext().req; } } @Module({ imports: [ GraphQLModule.forRoot({ autoSchemaFile: 'schema.gql', context: ({ req }) => ({ req }), }), AuthModul..
-
[NestJS] GraphQL Input Type Enum Field 사용 방법JavaScript/NestJS 2020. 11. 25. 11:17
enum에 registerEnumType 추가해줘야 사용 가능 @InputType() export class PracticeInputType { @IsNumber() @Field(() => Int) public id: number; @IsEnum(PracticeType) @Field(() => PracticeType) public practiceType: PracticeType; } export enum PracticeType { Test1 = 'test1', Test2 = 'test2', Test3 = 'test3', } registerEnumType(PracticeType, { name: 'PracticeType' });
-
[Web] GraphQL 이란?WEB 2020. 11. 15. 14:42
GraphQL이란? facebook에서 만든 Graph Query Language로 API를 위한 쿼리 언어 타입 시스템을 이용해서 실행하는 서버사이드 런타임 REST API의 단점을 극복하기 위해 만들어짐 REST API는 API를 호출했을 때 상황에 따라 필요하지 않은 데이터도 받는 Over Fetching이 발생 REST API는 원하는 데이터를 얻기 위해 여러 API를 호출하는 Under Fetching이 발생 API를 만들 때 도메인 별로 엔드포인트를 갖기 때문에 각 도메인에 비슷한 API가 존재할 수 있음 GraphQL의 장점 하나의 엔드포인트만 가지고 있음 클라이언트에서 쿼리를 작성하여 필요한 데이터를 받아옴 요청 횟수와 응답 사이즈를 줄일 수 있음 Over Fetching, Under Fe..