Using GraphQL for robust and flexible APIs