Netflix現在開源內部使用的DGS(Domain Graph Service)框架,該框架是一個適用於Java框架Spring Boot的GraphQL伺服器框架,讓開發者能以Java或是Kotlin來建置全功能的GraphQL伺服器。

由於在2019年的時候,Netflix內部開始採用新的聯合架構(Federated Architecture),而使得許多後端團隊,都需要在Java生態系中採用GraphQL,因此Netflix使用Spring Boot作為後端開發標準,而為了改善Spring Boot中的GraphQL開發體驗,最終使用graphql-java函式庫開發了DGS框架,官方提到,DGS框架並非只能用於Netflix,而是提供簡單建構GraphQL服務的通用途徑。

GraphQL開發有兩種不同的方法,架構優先(Schema-First)以及程式碼優先(Code-First),在架構優先中,開發者可以使用GraphQL架構語言定義API架構,服務的程式碼僅是實作該架構,而程式碼優先開發不使用架構檔案,架構則是在執行時,根據程式碼中的定義產生。

DGS框架同時支援這兩種開發方法,不過在Netflix中,他們偏好採用架構優先方法,儘管程式碼優先的模式,會稍微快一點,但是Netflix認為,值得花時間以人類可讀和協作的方式來設計架構,建立更好的API。

雖然DGS框架主要是以Kotlin撰寫,但其實原本是被設計來用在Java中,而主要使用者的確也都是使用Java,但是要把DGS框架用在Kotlin也沒有問題。無論是Java還是Kotlin開發者,都可使用DGS框架,在Spring Boot中構建GraphQL服務,可以用於建構獨立的服務,也可以用於建構聯合GraphQL,DGS框架提供了一種簡單的方法,以實作聯合GraphQL服務。Netflix提到,他們開源DGS框架,且也會使用相同的開源元件,不會使用自己分叉的版本。

Netflix從2019年開始發展DGS框架,並且已經利用該框架開發多個GraphQL服務,而現在Netflix決定將其開源,借助社群的力量來進一步擴展DGS框架,使用者已經可以將該框架用於產品上,Netflix提到,在開源之前,他們就已經大規模使用DGS框架超過一年,新增許多功能並修復臭蟲,現在已經是非常穩定的平臺。

熱門新聞

Advertisement