Maak een Basis GraphQL API Mock Server
description
Met deze prompt kan ik snel een mock GraphQL server opzetten die mijn basis API schema simuleert, wat het ontwikkelen en testen zonder echte backend mogelijk maakt. Dit bespaart tijd en voorkomt vertragingen in de ontwikkeling terwijl ik mijn queries en mutaties kan uitproberen.
prompt
Help me een eenvoudige mock server te maken voor mijn basis GraphQL API met de volgende details:
Schema Overzicht: <beschrijf de hoofdelementen van mijn GraphQL schema>
Voorbeeld Data: <geef voorbeelddata die ik wil gebruiken om te moc ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een eenvoudige mock GraphQL server in Node.js met behulp van de `apollo-server` bibliotheek. Deze server simuleert je schema en geeft voorbeeld data terug.
Stap 1: Installeer de benodigde dependencies:
```bash
npm init -y
npm install apollo-server graphql
```
Stap 2: Maak een bestand genaamd `index.js` met de volgende inhoud:
```javascript
const { ApolloServer, gql } = require('apollo-server');
// Schema definitie
const typeDefs = gql`
type User {
id: ID!
name: String
email: String
}
type Query {
getUser(id: ID!): User
}
type Mutation {
createUser(id: ID!, name: String, email: String): User
updateUser(id: ID!, name: String, email: String): User
}
`;
// Mock data
const users = [
{ id: '1', name: 'Jan Jansen', email: 'jan@example.com' },
];
// Resolvers
const resolvers = {
Query: {
getUser: (_, { id }) => {
return users.find(user => user.id === id) || null;
},
},
Mutation: {
createUser: (_, { id, name, email }) => {
const newUser = { id, name, email };
users.push(newUser);
return newUser;
},
updateUser: (_, { id, name, email }) => {
const userIndex = users.findIndex(user => user.id === id);
if (userIndex === -1) return null;
const updatedUser = { ...users[userIndex], name, email };
users[userIndex] = updatedUser;
return updatedUser;
},
},
};
// Server starten
const server = new ApolloServer({ typeDefs, resolvers });
server.listen({ port: 4000 }).then(({ url }) => {
console.log(`Mock GraphQL server klaar op ${url}`);
});
```
Stap 3: Server starten:
```bash
node index.js
```
De server draait nu op http://localhost:4000 en biedt een mock API die je voor ontwikkeling en testen kunt gebruiken. Je queries kunnen bijvoorbeeld zo eruit zien:
```graphql
query {
getUser(id: "1") {
id
name
email
}
}
```
Optioneel kun je de mutations gebruiken om users aan te maken of bij te werken:
```graphql
mutation {
createUser(id: "2", name: "Piet Pietersen", email: "piet@example.com") {
id
name
email
}
}
```
Veel succes!
provider: deepseek
model: deepseek-chat
Hier is een complete mock server configuratie voor je GraphQL API met Apollo Server:
**1. Installeer de benodigde packages:**
```bash
npm install apollo-server graphql
```
**2. Maak een `server.js` bestand:**
```javascript
const { ApolloServer, gql } = require('apollo-server');
// GraphQL Schema definitie
const typeDefs = gql`
type User {
id: ID!
name: String!
email: String!
}
type Query {
getUser(id: ID!): User
}
type Mutation {
createUser(name: String!, email: String!): User
updateUser(id: ID!, name: String, email: String): User
}
`;
// Mock data
const mockUsers = [
{
id: '1',
name: 'Jan Jansen',
email: 'jan@example.com'
}
];
// Resolvers
const resolvers = {
Query: {
getUser: (_, { id }) => {
return mockUsers.find(user => user.id === id);
}
},
Mutation: {
createUser: (_, { name, email }) => {
const newUser = {
id: String(mockUsers.length + 1),
name,
email
};
mockUsers.push(newUser);
return newUser;
},
updateUser: (_, { id, name, email }) => {
const userIndex = mockUsers.findIndex(user => user.id === id);
if (userIndex === -1) {
throw new Error('User not found');
}
if (name) mockUsers[userIndex].name = name;
if (email) mockUsers[userIndex].email = email;
return mockUsers[userIndex];
}
}
};
// Server configuratie
const server = new ApolloServer({
typeDefs,
resolvers,
introspection: true, // Handig voor ontwikkeling
playground: true // GraphQL playground interface
});
// Start de server
server.listen({ port: 4000 }).then(({ url }) => {
console.log(`🚀 Mock server ready at ${url}`);
console.log(`📚 GraphQL Playground available at ${url}graphql`);
});
```
**3. Voeg een start script toe aan je `package.json`:**
```json
{
"scripts": {
"start": "node server.js",
"dev": "node server.js"
}
}
```
**4. Start de server:**
```bash
npm start
```
De server zal starten op `http://localhost:4000` met een GraphQL Playboard waar je queries kunt testen.
**Voorbeeld queries om te testen:**
```graphql
# Query voor Jan Jansen
query GetUser {
getUser(id: "1") {
id
name
email
}
}
# Mutatie om nieuwe user aan te maken
mutation CreateUser {
createUser(name: "Piet Pietersen", email: "piet@example.com") {
id
name
email
}
}
# Mutatie om user bij te werken
mutation UpdateUser {
updateUser(id: "1", name: "Jan de Vries", email: "jan.devries@example.com") {
id
name
email
}
}
```
De mock data wordt in-memory opgeslagen, dus bij herstarten van de server verdwijnen wijzigingen. Perfect voor ontwikkeling en testen!