Ontwerp een Basis GraphQL Schema met Geavanceerde Filter- en Sorteeropties
description
Met deze prompt kan ik een flexibel GraphQL schema ontwerpen dat mijn data queries dynamischer en efficiënter maakt door uitgebreide filter- en sorteermogelijkheden toe te voegen. Dit lost problemen op waarbij standaard query-opties te beperkt zijn en helpt me betere controle over data op te halen, wat mijn API gebruiksvriendelijker en krachtiger maakt dan alternatieven zonder deze functionaliteit.
prompt
try_prompt
Help me een basis GraphQL schema te ontwerpen dat geavanceerde filter- en sorteermogelijkheden ondersteunt voor mijn dataset.
Objecttypen: <beschrijf de objecttypen die ik wil definiëren>
Velden per objecttype: <specificeer de velden per objecttype>
Filteropties: <beschrijf welke ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een basis GraphQL-schema dat geavanceerde filter- en sorteermogelijkheden ondersteunt voor jouw dataset:
```graphql
# Definieer de objecttypes
type Product {
id: ID!
naam: String!
prijs: Float!
categorie: Categorie!
}
type Categorie {
id: ID!
naam: String!
}
type Gebruiker {
id: ID!
naam: String!
email: String!
}
# Input type voor filteropties
input ProductFilter {
prijsMin: Float
prijsMax: Float
categorieContains: String
}
# Enum voor sorteeropties
enum ProductSortField {
PRIJS_ASC
PRIJS_DESC
NAAM_ASC
NAAM_DESC
}
# Input type voor sortering
input ProductSort {
field: ProductSortField!
}
# Query type met flexibele filters en sortering
type Query {
producten(
filter: ProductFilter
sort: ProductSort
): [Product!]!
}
```
### Toelichting:
- **Objecttypes**: `Product`, `Categorie` en `Gebruiker` met relevante velden.
- **Filteropties**: `ProductFilter` met `prijsMin`, `prijsMax` en `categorieContains` voor flexibele filtering.
- **Sorteermogelijkheden**: `ProductSortField` enum met opties voor prijs en naam, en `ProductSort` input voor het specificeren van de sortering.
- **Query**: De `producten` query accepteert optioneel een `filter` en een `sort` parameter om de resultaten te filteren en sorteren.
Met dit schema kun je krachtige en flexibele queries uitvoeren om je data efficiënt op te halen en te ordenen.
provider: deepseek
model: deepseek-chat
Hier is een basis GraphQL schema met geavanceerde filter- en sorteermogelijkheden:
```graphql
# Basistypen
type Product {
id: ID!
naam: String!
prijs: Float!
categorie: Categorie!
}
type Categorie {
id: ID!
naam: String!
}
type Gebruiker {
id: ID!
naam: String!
}
# Filter input types
input ProductFilter {
prijsMin: Float
prijsMax: Float
categorieContains: String
}
# Sorteer input types
enum ProductSortField {
PRIJS_ASC
NAAM_DESC
}
input ProductSort {
veld: ProductSortField!
}
# Query type
type Query {
# Product queries
producten(
filter: ProductFilter
sortering: [ProductSort!]
eerste: Int
na: String
): ProductConnection!
product(id: ID!): Product
# Andere queries
categorieen: [Categorie!]!
gebruikers: [Gebruiker!]!
}
# Paginatie types
type ProductConnection {
edges: [ProductEdge!]!
pageInfo: PageInfo!
}
type ProductEdge {
node: Product!
cursor: String!
}
type PageInfo {
hasNextPage: Boolean!
endCursor: String
}
```
**Belangrijkste kenmerken:**
1. **Flexibele filtering**:
- `prijsMin` en `prijsMax` voor prijsbereik
- `categorieContains` voor gedeeltelijke categorie-overeenkomst
2. **Geavanceerde sortering**:
- Meerdere sorteervelden mogelijk via array
- Specifieke sorteerrichtingen (ASC/DESC)
3. **Paginatie**:
- Cursor-based paginatie voor grote datasets
- `eerste` en `na` parameters voor efficiënte data-ophaling
4. **Uitbreidbaar**:
- Eenvoudig nieuwe filters en sorteeropties toe te voegen
- Duidelijke type-definities
**Voorbeeld queries:**
```graphql
# Filteren en sorteren
query {
producten(
filter: {
prijsMin: 10.0
prijsMax: 100.0
categorieContains: "elektronica"
}
sortering: [
{ veld: PRIJS_ASC }
]
eerste: 10
) {
edges {
node {
id
naam
prijs
categorie {
naam
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
```
Dit schema biedt een solide basis die je kunt uitbreiden met extra filters, sorteeropties en complexere query-mogelijkheden.

