Beyond REST Exploring GraphQL for Modern APIs

10/04/24·3 min read

Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis varius velit fermentum, scelerisque tellus a, fermentum nulla. Nullam a velit tincidunt, semper orci eget, malesuada est. Interdum et malesuada fames ac ante ipsum primis in faucibus. In hac habitasse platea dictumst. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Morbi pharetra lectus imperdiet porttitor interdum. Sed porttitor, dui vitae accumsan condimentum, dolor risus semper magna, eget rutrum metus nibh vel augue. Donec in eleifend sapien. Fusce ante dolor, consectetur sed massa sit amet, dignissim malesuada massa. Suspendisse potenti. Cras ac lorem ut velit venenatis eleifend. Phasellus consequat massa leo, non suscipit lectus vestibulum eu. Nullam scelerisque massa sed neque blandit, id sagittis est sagittis. Fusce bibendum egestas erat id bibendum. Nullam felis dolor, maximus sed nunc nec, viverra maximus elit.

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');

const app = express();
const PORT = 3000;

// Define a simple schema
const schema = buildSchema(`
  type Query {
    hello: String
    users: [User]
  }

  type Mutation {
    createUser(name: String!, age: Int!): User
  }

  type User {
    id: ID!
    name: String!
    age: Int!
  }
`);

// In-memory data storage
let users = [];
let idCounter = 1;

// Define the root resolver
const root = {
  hello: () => 'Hello, world!',
  users: () => users,
  createUser: ({ name, age }) => {
    const newUser = { id: idCounter++, name, age };
    users.push(newUser);
    return newUser;
  },
};

// Setup GraphQL endpoint
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true, // Enables the GraphiQL UI
}));

// Start the server
app.listen(PORT, () => {
  console.log(`GraphQL API server running at http://localhost:${PORT}/graphql`);
});

dolor sit amet

Suspendisse arcu mi, mattis in tincidunt at, lobortis et ligula. Etiam luctus augue tempor dui placerat, ut hendrerit nunc ullamcorper. Vivamus eu nunc sagittis, fermentum eros sit amet, semper sem. Vestibulum id auctor ex. Aliquam magna mi, venenatis quis mi eu, cursus iaculis sapien. Mauris mattis, tellus at euismod tincidunt, dolor lorem dictum dolor, in semper sem odio vel diam. Sed mattis, sapien eu viverra convallis, lectus tellus dapibus nisi, non pellentesque nulla risus nec odio. Ut interdum congue ligula sit amet rutrum. Etiam et erat fermentum, hendrerit ante at, molestie sem. Praesent nec metus laoreet, tempor diam sed, laoreet nulla. Vestibulum fermentum erat sed ligula fermentum dapibus. Aliquam pharetra nisi mauris, vitae tincidunt enim pharetra eu.

> share post onX(twitter)