Welcome to The Weekly Wisdom
Edition #11 - 17 Jul 2025
Topic tags - connectors odyssey
Stay in the loop: Subscribe to the “The Weekly Wisdom” category to get notified when new posts drop—no FOMO here.
Hey all!
@Michelle_Mabuyo here from the Apollo Education team. I’m a Developer Educator and I build courses for Odyssey, our official learning platform.
I’m back for the next edition of a multi-part series to teach you the basics of Apollo Connectors: a powerful way to bring existing REST APIs into your graph, all through configuration in the schema.
This week’s learning: Crafting mutation payloads with Connectors
When integrating POST endpoints into your GraphQL API using Apollo Connectors, it’s important to structure the request body correctly. This ensures that the Connector request aligns with the API’s expectations.
Let’s look at this example body payload for a request:
{
"name": "Earth v2",
"mass": 6.42
}
In the schema, here’s what our Connector would look like (we’ve omitted the other @connect parameters to focus on the request section):
type Mutation {
createPlanet(input: CreatePlanetInput!): Planet
@connect(
source: "outerspace"
http: {
POST: "/planets"
body: """
name: $args.input.name
mass: $args.input.mass
"""
}
)
}
In comparison, if the body payload had a top-level planet property set to an object, like this:
{
"planet": {
"name": "Earth v2",
"mass": 6.42
}
}
The body of the Connector would also need to match:
http: {
POST: "/planets"
body: """
planet: {
name: $args.input.name
mass: $args.input.mass
}
"""
}
Want to go deeper?
Explore more about integrating mutations with Apollo Connectors in the Odyssey tutorial “GraphQL meets REST with Apollo Connectors (Lesson 10)”.
Share your thoughts in the thread below 
What challenges have you encountered when mapping GraphQL inputs to REST API payloads?
