GraphQL Nexus - 코드 우선 GraphQL 서버 개발

GraphQL 스키마는 데이터 그래프에 대해 실행할 수 있는 작업 사양(쿼리 및 변형)을 포함하여 클라이언트에서 사용할 수 있는 기능을 설명하는 일련의 규칙입니다. GraphQL 서비스를 구축할 때 코드 우선 또는 스키마 우선 경로를 따를 것인지 여부를 선택해야 합니다.
  • 스키마 우선 - 스키마를 진실의 소스로 지정하고 코드가 스키마에 저장된 정의를 따르도록 하는 스키마 설계 프로세스의 우선 순위를 지정합니다.
  • 코드 우선(확인자 우선) - GraphQL 스키마가 프로그래밍 방식으로 구현되는 접근 방식입니다.

  • 두 경우 모두 완전히 작동하는 GraphQL 서비스가 제공되지만 이 선택은 일부 기능을 도입하기 위해 투입해야 하는 작업량 측면에서 프로젝트에 영향을 미칩니다. 별도 포스트).

    GraphQL 서버 개발을 위한 코드 우선 프레임워크



    GraphQL의 인기가 급속히 증가하면서 GraphQL 작업 경험을 용이하게 하는 스키마 우선 및 코드 우선 지향의 다양한 도구에 대한 자연스러운 필요성이 생겼습니다. 코드 우선 접근 방식을 나타내는 도구 중 하나는 GraphQL Nexus framerwork 입니다.

    GraphQL Nexus는 스키마가 프로그래밍 방식으로 정의되고 구현되는 GraphQL 서버를 구축하기 위한 GraphQL 프레임워크입니다. GraphQL Nexus는 다음과 같은 기능을 제공할 수 있는 Node.js 및 TypeScript에 의존합니다.
  • 유형 안전성 - 개발 프로세스를 진행하면서 유형 정의가 생성되고 코드에서 추론되어 자동 완성 및 오류 포착 기능을 제공합니다
  • .
  • GraphQL 에코시스템과의 호환성 - GraphQL Nexus는 graphql-js에 크게 의존하며 자동 생성된 스키마를 Apollo 서버 등과 같은 가장 널리 사용되는 도구와 호환되도록 만드는 스키마를 구성할 때 기존 유형과 잘 작동합니다.
  • 데이터 독립적 - GraphQL Nexus는 기본적으로 graphql-js 또는 apollo-tools로 수행할 수 있는 모든 작업을 수행할 수 있음을 의미하는 graphql-js 라이브러리 위에 계층화된 선언적 구문입니다.

  • 스키마에 필요한 모든 유형을 파악했으면 makeSchema 함수를 사용하여 GraphQL 서버의 기반으로 사용될 스키마 인스턴스를 생성하기만 하면 됩니다.

    const schema = makeSchema({
      // The programmatically defined building blocks of your GraphQL schema
      types: [User, Query, Mutation],
    
      // Specify where the generated TS typings and SDL should be located
      outputs: {
        typegen: __dirname + '/generated/typings.ts',
        schema: __dirname + '/generated/schema.graphql',
      },
    
      // All input arguments and return types are non-null by default
      nonNullDefaults: {
        input: true,
        output: true,
      },
    })
    
    // ... feed the `schema` into your GraphQL server (e.g. apollo-server or graphql-yoga)
    

    시작하기



    이전에 언급했듯이 GraphQL Nexus는 graphql-js에 크게 의존하며 설치에도 필요합니다.

    npm install nexus
    npm install graphql # required as a peer dependency
    

    GraphQL Nexus를 시작하는 가장 좋은 방법은 물론 official documentation입니다. 그것에 익숙해지면 다음 단계는 official examplesonline Playground 을 가지고 놀 수 있습니다. 재미있게 보내세요!


    GraphQL 스키마 개발 속도 향상



    GraphQL Editor는 고급 GraphQL 사용자와 GraphQL API를 처음 사용하는 사용자 모두를 지원하는 도구입니다. GraphQL용 올인원 개발 환경은 GraphQL API를 훨씬 빠르게 구축, 관리 및 배포하는 데 도움이 됩니다. Try GraphQL Editor for free!

    좋은 웹페이지 즐겨찾기