Domain Graph Service(DGS) - Netflix의 Spring Boot용 오픈 소스 GraphQL 프레임워크
시작 방법
2019년 Netflix는 다음을 목표로 연합 GraphQL 아키텍처를 구현하기로 결정했습니다.
백엔드 개발을 위해 Spring Boot를 표준화한 회사의 경우, 새로운 아키텍처로의 전환은 Netflix의 Java 에코시스템 전반에 걸쳐 다양한 백엔드 팀을 위해 GraphQL을 채택해야 하는 과제를 의미했습니다. 이 작업을 성공적으로 호출하려면 GraphQL을 구현해야 하는 팀이 Spring Boot에서 GraphQL에 대한 훌륭한 개발자 경험을 제공해야 한다는 것이 분명했습니다. 이것이 도메인 그래프 서비스가 탄생한 이유입니다.
도메인 그래프 서비스
DGS(도메인 그래프 서비스)는 Netlfix에서 내부적으로 생성된 프레임워크로 Spring Boot용 독립 실행형 및 연합 GraphQL 서비스의 구현을 단순화합니다. 프레임워크는 graphql-java 위에 구축됩니다. 대부분의 DGS 코드는 Kotlin으로 작성되었지만 주로 Java와 함께 사용하도록 설계되었으며 주요 기능은 다음과 같습니다.
개발자들에게 얼마나 큰 거래인지 깨달은 Netflix는 2020년에 프레임워크를 오픈 소스로 만들고 이를 중심으로 커뮤니티를 구축하기로 결정했습니다(Netflix는 동일한 OSS 구성 요소를 사용하고 있습니다!).
출처: netflixtechblog.com
시작하기
DGS를 사용하는 것은 매우 간단합니다. 프레임워크의 기초는 Spring Boot 개발자에게 잘 알려진 주석 기반 프로그래밍 모델을 중심으로 구성됩니다. 이 프로젝트를 진행하는 팀에서 제공한 예를 살펴보겠습니다.
우선, GraphQL 스키마를 정의해야 합니다. 예를 들면 다음과 같이 간단합니다.
type Query {
shows(titleFilter: String): [Show]
}
type Show {
title: String
releaseYear: Int
}
스키마가 정의되면 다음 단계는 페처를 구현하는 것입니다. 그게 다입니다. 이것은 GraphQL 엔드포인트를 실행하기에 충분합니다!
@DgsComponent
public class ShowsDatafetcher {
private final List<Show> shows =
List.of(
new Show("Stranger Things", 2016),
new Show("Ozark", 2017)
);
@DgsData(parentType = "Query", field = "shows")
public List<Show> shows(@InputArgument("titleFilter") String titleFilter) {
if(titleFilter == null) {
return shows;
}
return shows.stream()
.filter(s -> s.getTitle().contains(titleFilter))
.collect(Collectors.toList());
}
}
출처: netflixtechblog.com
사용해 보세요
DGS 프레임워크를 사용해보고 싶다면 official documentation and guides을 확인하거나 the DGS repo on GitHub으로 바로 이동하세요.
GraphQL API 개발 속도 향상
GraphQL Editor는 고급 GraphQL 사용자와 GraphQL API를 처음 사용하는 사용자 모두를 지원하는 도구입니다. GraphQL용 올인원 개발 환경은 GraphQL API를 훨씬 빠르게 구축, 관리 및 배포하는 데 도움이 됩니다. Try GraphQL Editor for free!
Reference
이 문제에 관하여(Domain Graph Service(DGS) - Netflix의 Spring Boot용 오픈 소스 GraphQL 프레임워크), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/graphqleditor/domain-graph-service-dgs-open-source-graphql-framework-for-spring-boot-by-netflix-37h3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)