OpenAPI zu GraphQL SDL
GraphQL Schema Synthesis

OpenAPI / Swagger zu GraphQL SDL Schema-Konverter

Konvertieren Sie OpenAPI 3.0/3.1 und Swagger 2.0 REST-Endpunkte, Request-Bodys und JSON-Schemas in GraphQL-SDL-Typen, Queries, Mutations und Input-Definitionen.

100% clientseitige Privatsphäre
Null Serverübertragung
Vorlagen:
SDL Optionen:
OpenAPI / Swagger Spezifikation (YAML / JSON)OpenAPI 3.x (YAML)
# ==============================================================================
# GraphQL SDL Schema synthesized from OpenAPI / Swagger
# Title: Swagger Petstore (1.0.0)
# Base Server: https://petstore3.swagger.io/api/v3
# Generated by ToolsAA 100% Client-Side Engine
# ==============================================================================


"""ISO-8601 compliant datetime representation"""
scalar DateTime

"""Arbitrary unstructured JSON object data"""
scalar JSON


schema {
  query: Query
  mutation: Mutation
}


type Query {
  # --- Pets ---
  """List all pets"""
  listPets(status: ListPetsStatusEnum, limit: Int): [Pet!]!

  """Find pet by ID"""
  getPetById(petId: ID!): Pet!
}


type Mutation {
  # --- Pets ---
  """Create a pet"""
  createPet(input: NewPetInput!): Pet!

  """Update an existing pet"""
  updatePet(petId: ID!, input: NewPetInput!): Pet!

  """Deletes a pet"""
  deletePet(petId: ID!): Boolean!
}


enum NewPetStatusEnum {
  AVAILABLE
  PENDING
  SOLD
}


enum PetStatusEnum {
  AVAILABLE
  PENDING
  SOLD
}


enum ListPetsStatusEnum {
  AVAILABLE
  PENDING
  SOLD
}


type Category {
  id: ID!
  name: String!
}


type Tag {
  id: ID!
  name: String!
}


type NewPet {
  name: String!
  category: Category
  photoUrls: [String!]!
  tags: [Tag!]
  status: NewPetStatusEnum
}


type Pet {
  id: ID!
  name: String!
  category: Category
  photoUrls: [String!]!
  tags: [Tag!]
  status: PetStatusEnum!
  createdAt: DateTime
}


input CategoryInput {
  id: ID!
  name: String!
}


input TagInput {
  id: ID!
  name: String!
}


input NewPetInput {
  name: String!
  category: CategoryInput
  photoUrls: [String!]!
  tags: [TagInput!]
  status: NewPetStatusEnum
}
5
REST Endpunkte
10
GraphQL Typen & Inputs
1.7 KB
SDL Dateigröße

100% Lokale Ausführung & Datenschutz

Ihre vertraulichen API-Spezifikationen verbleiben strikt in Ihrem lokalen Browser-Speicher ohne Serverübertragung.

Vollständige GraphQL SDL Synthese

Konvertiert GET-Endpunkte präzise in Queries, schreibende Operationen in Mutations und JSON-Schemas in GraphQL Typen.

Kompatibel mit Apollo & GraphQL Tooling

Standardkonforme GraphQL SDL für Apollo Server, Yoga, Nexus, AWS AppSync und Code-Generatoren.

Technische Referenz & Architektur-Leitfaden

OpenAPI / Swagger zu GraphQL SDL Schema Konverter — Referenz-Leitfaden

Konvertieren Sie OpenAPI 3.0/3.1 und Swagger 2.0 REST-Endpunkte, Request-Bodys und JSON-Schemas in GraphQL-SDL-Typen, Queries, Mutations und Input-Definitionen.

Wichtige Parameter & Steuerelemente

operationMapping'query-mutation' | 'query-only'

Steuert, ob REST-Operationen sowohl in Query als auch Mutation Root-Typen aufgeteilt oder ausschließlich als Queries abgebildet werden.

Standard: 'query-mutation'
inputNamingConvention'suffix-input' | 'prefix-input' | 'exact'

Definiert die Namenskonvention für generierte GraphQL Input-Objekttypen aus HTTP-Request-Bodys.

Standard: 'suffix-input'
idFieldMapping'ID' | 'String' | 'Int'

Bestimmt den Ziel-GraphQL-Skalartyp für REST-Pfadparameter und Entitätsidentifikatoren.

Standard: 'ID'
nullableMode'strict-non-null' | 'optional'

Legt fest, ob erforderliche OpenAPI-Eigenschaften und Pfadparameter mit strikten Nicht-Null-Markierungen (!) versehen werden.

Standard: 'strict-non-null'
customScalars'enabled' | 'string-only'

Generiert benutzerdefinierte GraphQL-Skalardeklarationen (DateTime, UUID, JSON) für OpenAPI-String-Formate.

Standard: 'enabled'

Profi-Tipps & Best Practices

Dedizierte Input-Typen erzeugen

GraphQL trennt strikt zwischen Ausgabe-Objekttypen (type) und Argument-Eingabetypen (input). Erzeugen Sie für OpenAPI-Request-Bodys immer dedizierte Input-Typen, um Schemagültigkeit zu gewährleisten.

Schema-Direktiven hinterlegen

Verwenden Sie Schema-Direktiven wie @rest(path: "/users/{id}", method: "GET"), um Routing-Informationen für Gateways wie Apollo Server RESTDataSource oder GraphQL Mesh nahtlos bereitzustellen.

oneOf in Union-Typen wandeln

Wandeln Sie oneOf-Schemas mit Diskriminator in GraphQL-Union-Typen um. Kapseln Sie primitive Skalartypen in synthetische Objekttypen, da GraphQL-Unions ausschließlich Objekttypen unterstützen.

Gemeinsame Typen wiederverwenden

Lösen Sie '#/components/schemas' direkt in globale GraphQL-Typen auf, um redundante Inline-Typdeklarationen über mehrere REST-Endpunkte hinweg vollständig zu vermeiden.

Häufige Fallstricke & Fehlerbehebung

Namenskollision zwischen Request-Body und Response-Objekttyp

Aktivieren Sie das Namenssuffix 'Input' (z. B. 'CreateUserInput'), damit Eingabetypen nicht mit Ausgabetypen kollidieren, die denselben OpenAPI-Schemanamen teilen.

Fehler durch primitive Skalare in oneOf- oder anyOf-Unions

GraphQL-Unions unterstützen keine Skalartypen wie String oder Int. Hüllen Sie primitive Zweige in synthetische Wrapper-Typen mit einem 'value'-Feld ein.

Fehlende 200/201-Antwort führt zu Syntaxfehlern beim Rückgabetyp

Stellen Sie sicher, dass jede OpenAPI-Operation mindestens ein erfolgreiches 2xx-Antwortschema deklariert, oder konfigurieren Sie einen generischen Standard-Status-Typ.

Häufig gestellte Fragen (FAQ)

Wie werden REST-HTTP-Methoden auf GraphQL-Root-Typen abgebildet?▼

HTTP-GET-Endpunkte werden in Query-Felder umgewandelt. POST-, PUT-, PATCH- und DELETE-Endpunkte werden als Mutation-Felder definiert, wobei Pfad- und Abfrageparameter als typisierte Argumente dienen.

Wie werden OpenAPI $ref-Komponenten in GraphQL SDL aufgelöst?▼

Geteilte Modelle aus components/schemas oder definitions werden als wiederverwendbare GraphQL SDL-Typen und -Inputs deklariert, wodurch redundante Inline-Definitionen vermieden werden.

Können polymorphe OpenAPI-Schemas (oneOf/anyOf) in GraphQL dargestellt werden?▼

Ja. Objektbasierte oneOf-Schemas mit Diskriminator werden in GraphQL-Unions oder -Interfaces konvertiert. Gemischte Skalar-Unions werden durch Hilfsobjekttypen gekapselt.

Werden meine OpenAPI-Spezifikationen an externe Server übertragen?▼

Nein. Die gesamte Analyse, AST-Transformation und SDL-Generierung erfolgt zu 100 % lokal im Arbeitsspeicher Ihres Browsers. Es findet keinerlei Datenupload statt.

Mit welchen GraphQL-Servern und Frameworks ist das generierte SDL kompatibel?▼

Das SDL entspricht der offiziellen GraphQL-Spezifikation (Oktober 2021+) und ist direkt kompatibel mit Apollo Server, GraphQL Yoga, AWS AppSync, Nexus und GraphQL Mesh.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →