GraphJin으로 5분 만에 고성능 GraphQL API 구축



데이터베이스의 구조를 자동으로 학습하고 GraphQL로 즉시 쿼리를 시작할 수 있는 오픈 소스 GraphQL 백엔드가 있다고 말하면 어떻게 될까요? 코드나 구성이 없으며 바로 사용할 수 있습니다.

이것은 비현실적으로 들리지만 존재합니다. GraphJin은 GraphQL 쿼리를 효율적이고 빠른 SQL 쿼리로 변환하는 즉각적인 GraphQL to SQL 컴파일러입니다. GraphJin은 Go로 작성되었으며 독립 실행형 서비스 또는 자체 앱 내 라이브러리로 사용할 수 있습니다. Postgres, Mysql, Distributed Yugabyte 및 CockroackDB 데이터베이스와 함께 작동합니다.

그래프진 설치




go get github.com/dosco/graphjin


시스템에 Go installed이 필요합니다. 위의 명령은 일반적으로 GOPATH이며 경로에 추가되어야 하는 ~/go/bin에 GraphJin을 다운로드, 컴파일 및 설치합니다.

그래프진 앱 만들기




graphjin new blog



INF created 'blog'
INF created 'blog/Dockerfile'
INF created 'blog/docker-compose.yml'
INF created 'blog/cloudbuild.yaml'
INF created 'blog/config'
INF created 'blog/config/dev.yml'
INF created 'blog/config/prod.yml'
INF created 'blog/config/seed.js'
INF created 'blog/config/migrations'
INF created 'blog/config/migrations/0_init.sql'
INF app 'blog' initialized


새로 생성된 앱은 blog 폴더에 있으며 도커 환경, 구성 파일 및 데이터베이스 마이그레이션 파일을 포함합니다.

데이터베이스 설정




docker-compose run api db:setup


우리는 Docker Compose을 사용합니다. 이는 Docker에서 전체 백엔드를 실행하고 시스템을 복잡하게 만들 필요가 없는 좋은 방법입니다. 위의 이 명령은 docker-compose를 사용하여 Postgres 데이터베이스를 시작하고 GraphJin config/dev.yml 구성 파일을 사용합니다.

그런 다음 db:setup 데이터베이스를 생성하고 blog_development 데이터베이스 마이그레이션 스크립트에 정의된 테이블을 생성하는 config/migrations/0_init.sql GraphJin 명령을 실행합니다. 그런 다음 시딩 스크립트를 실행seed.js하여 개발에 도움이 되도록 가짜 데이터를 데이터베이스에 추가합니다.

앱 시작




docker-compose up

up 명령도 데이터베이스를 실행하지만 이번에는 GraphQL API 백엔드를 시작하는 serv 명령으로 Graphjin을 실행합니다.

GraphQL 사용해보기




query {
  users {
    id
    email
  }
}


브라우저를 열고 http://localhost:8080을 방문하십시오. GraphJin 웹 UI가 표시됩니다. 여기에서 GraphQL 쿼리를 만들고 테스트할 수 있습니다.

좀 더 자세한 내용



보안



개발 모드에서는 모든 명명된 쿼리query getUser { user { id } }(예: getUser라는 이름의 쿼리)가 허용 목록 파일에 저장되고 프로덕션 모드에서는 해당 쿼리만 실행할 수 있습니다. 이것은 아무도 API에 다른 쿼리를 보낼 수 없고 노출하고 싶지 않은 데이터를 얻을 것으로 예상할 수 없기 때문에 GraphJin을 매우 빠르고 안전하게 만듭니다. 또한 프로덕션 모드에서 쿼리는 데이터베이스 준비된 명령문으로 컴파일되어 매우 빠릅니다.

프런트엔드 개발



GraphJin은 ApolloURQL와 같은 모든 GraphQL 클라이언트 라이브러리에서 잘 작동합니다. 앱을 빌드할 때 명명된 쿼리를 사용하면 앱이 발전함에 따라 자동으로 저장(또는 업데이트)됩니다. 따라서 프로덕션 환경에 배포될 때 허용 목록이 함께 패키징됩니다.

누가 GraphJin을 사용하는가



GraphJin은 완전한 오픈 소스 Apache Licensed 프로젝트입니다. 활발하고 성장하는 커뮤니티, 훌륭한 문서 및 통합 테스트를 사용하는 훌륭한 테스트 범위가 있는 깨끗한 코드베이스가 있습니다.

GraphJin은 많은 스타트업에서 사용되어 수개월의 개발 시간을 절약해 줍니다. 예를 들어 인기 있는42papers.com 플랫폼은 인기 있는 CS/ML 및 AI 논문을 발견하기 위해 독립형 GraphJin 서비스를 사용합니다.

시간과 비용을 절약하세요



데이터베이스에서 데이터를 생성, 업데이트, 삭제 및 가져오기 위해 REST API를 개발하는 것은 UI가 진화함에 따라 이러한 API를 유지 관리하고 업데이트해야 하는 지루한 작업입니다. 이 모든 작업은 상대적으로 지루한 작업에 몇 주에서 몇 달이 걸리며 앱에 보안 허점을 도입하는 벡터가 될 수 있습니다.

GraphJin을 사용하면 이 모든 작업이 즉시 사라집니다. GraphJin이 생성하는 SQL 쿼리는 매우 빠르며 웹 개발자는 이제 UI를 구축하는 동안 필요한 쿼리를 생성할 수 있어야 합니다. 앱의 흥미로운 부분에 집중할 수 있습니다. 또한 GraphJin은 밀리초 단위로 시작되므로 Google App Engine, Google CloudRun, AWS Fargate, Azure Container Service와 같은 제로 플랫폼에 대한 서버리스 규모에서 훌륭하게 작동합니다. 작고 빠르며 기능이 가득합니다. 한 번 사용해 보세요. 기꺼이 도와드리겠습니다. 댓글이나 제 트위터를 통해 언제든지 문의해 주세요.

좋은 웹페이지 즐겨찾기