Belajar GraphQL - Beyond JavaScript/Node.js
Episode 48 of 51

Belajar GraphQL - Beyond JavaScript/Node.js

Episode 48 menjelajahi GraphQL di luar JavaScript: Graphene dan Strawberry untuk Python, GraphQL Java dan Spring Boot serta DGS, gqlgen untuk Go, GraphQL Ruby untuk Rails, Lighthouse untuk Laravel, Hot Chocolate untuk .NET, hingga Juniper untuk Rust.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

GraphQL adalah spesifikasi yang agnostik bahasa — semua yang kalian pelajari (schema, query, resolver, mutation) berlaku di bahasa apa pun. Episode 48 menjelajahi GraphQL di luar JavaScript dan framework pilihan di masing-masing ekosistem.

Kita akan melihat Python, Java dan Kotlin, Go, Ruby, PHP, .NET, dan Rust — cukup untuk mengenali pola dan memilih bahasa yang tepat untuk kebutuhan kalian.

Python GraphQL

Strawberry dan Graphene

Python memiliki dua framework utama. Strawberry adalah yang paling modern, berbasis dataclass; install dengan pip install strawberry-graphql:

PythonSchema Strawberry
import strawberry
 
@strawberry.type
class User:
    id: strawberry.ID
    username: str
 
@strawberry.type
class Query:
    @strawberry.field
    def user(self, id: strawberry.ID) -> User:
        return User(id=id, username="arman")
 
schema = strawberry.Schema(query=Query)

Graphene adalah framework yang lebih mapan dengan pendekatan class-based, sering dipakai bersama Django. Ariadne menawarkan pendekatan schema-first di Python, dan FastAPI + GraphQL populer untuk API modern.

Java dan Kotlin

GraphQL Java, Spring Boot, dan DGS

Di ekosistem JVM, pilihannya:

  • GraphQL Java: implementasi referensi Java, biasanya dipasangkan dengan Spring Boot.
  • Spring Boot GraphQL: integrasi resmi (spring-graphql) yang sangat matang.
  • DGS (Domain Graph Service) oleh Netflix: framework code-first dengan codegen, dipakai Netflix untuk production.
JSResolver Spring GraphQL
@Controller
public class UserController {
    @QueryMapping
    public User user(@Argument String id) {
        return userService.findById(id);
    }
}

Kotlin memakai library yang sama (JVM), dengan sintaks yang lebih ringkas.

Go GraphQL

gqlgen dan graphql-go

gqlgen adalah framework code-first paling populer di Go — menghasilkan code dari schema dan sangat cepat:

Inisialisasi gqlgen
go run github.com/99designs/gqlgen init
Resolver gqlgen
func (r *queryResolver) Users(ctx context.Context) ([]*model.User, error) {
    return r.UserService.List(ctx)
}

graphql-go menawarkan pendekatan yang lebih low-level. Go unggul untuk performa tinggi dan konvensi schema-first yang diterapkan gqlgen.

Ruby dan PHP

GraphQL Ruby dan Lighthouse

  • Ruby: GraphQL Ruby adalah standar, terintegrasi dengan Rails. Class-based schema:
Install GraphQL Ruby
bundle add graphql
rails generate graphql:install
  • PHP: Lighthouse untuk Laravel (schema-first dengan direktif) dan GraphQL PHP untuk framework lain, serta integrasi Symfony.

C# dan Rust

Hot Chocolate dan Juniper

  • C#/.NET: Hot Chocolate adalah framework GraphQL paling populer untuk ASP.NET Core, dengan code-first dan schema-first. GraphQL.NET adalah alternatif yang lebih mapan.
Install Hot Chocolate
dotnet add package HotChocolate.AspNetCore
  • Rust: Juniper untuk performa tinggi dan safety, async-graphql untuk fokus async.
Tambahkan Juniper di Cargo.toml
cargo add juniper

Memilih Bahasa

Pertimbangan Praktis

GraphQL membawa pola yang sama di semua bahasa: schema, resolvers, context, batching. Yang membedakan adalah ekosistem di sekitarnya:

  • Python: ideal untuk tim data/ML yang ingin API GraphQL di atas Python.
  • Go/Rust: performa terbaik untuk layanan dengan lalu lintas sangat tinggi.
  • Java/.NET: standar enterprise dengan framework yang sangat matang.
  • Ruby/PHP: natural untuk tim Rails/Laravel.

Apapun bahasanya, konsep dari 47 episode sebelumnya — nullability, error handling, pagination, auth, security — tetap berlaku identik. GraphQL adalah keahlian yang portable.

Penutup

Inti yang harus dibawa pulang:

  • Spesifikasi GraphQL agnostik bahasa; konsep inti identik di semua framework.
  • Python: Strawberry dan Graphene; JVM: Spring GraphQL dan DGS.
  • Go: gqlgen untuk code-first yang cepat; Rust: Juniper dan async-graphql.
  • Ruby: GraphQL Ruby; PHP: Lighthouse; .NET: Hot Chocolate.
  • Pilihan bahasa ditentukan ekosistem dan kebutuhan performa.
  • Keahlian GraphQL kalian portable ke bahasa apa pun.

Di episode 49 selanjutnya kalian akan mempelajari success stories dan case studies — perjalanan Facebook, GitHub, Shopify, dan Airbnb, metrik keberhasilan seperti pengurangan bandwidth dan produktivitas developer, tantangan yang dihadapi, best practices industri, hingga analisis ROI. Kalian akan belajar dari pengalaman perusahaan terbesar!

Belajar GraphQL - Beyond JavaScript/Node.js | Belajar GraphQL