OpenAPI a GraphQL SDL
GraphQL Schema Synthesis

Conversor de OpenAPI / Swagger a Esquema GraphQL SDL

Convierte endpoints REST, cuerpos de solicitud y esquemas JSON de OpenAPI 3.0/3.1 y Swagger 2.0 en tipos, consultas, mutaciones y definiciones de entrada de GraphQL SDL.

Privacidad 100% del lado del cliente
Cero transmisión al servidor
Preajustes:
SDL Opciones:
Especificación OpenAPI / Swagger (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
Endpoints REST Mapeados
10
Tipos GraphQL e Inputs
1.7 KB
Tamaño SDL Estimado

Privacidad 100% en el Navegador

Tus contratos API y esquemas internos se procesan exclusivamente en la memoria local de tu navegador sin envío a servidores remotos.

Síntesis Completa de GraphQL SDL

Genera consultas desde peticiones GET, mutaciones tipadas desde POST/PUT/PATCH/DELETE y transforma esquemas JSON en tipos GraphQL.

Listo para Apollo, Yoga y Relay

Salida SDL estándar compatible directamente con Apollo Server, GraphQL Yoga, Hasura y herramientas de GraphQL Code Generator.

Referencia técnica y guía de arquitectura

Guía de Desarrollo: Conversor de OpenAPI / Swagger a GraphQL SDL — Guía de referencia

Convierte endpoints REST, cuerpos de solicitud y esquemas JSON de OpenAPI 3.0/3.1 y Swagger 2.0 en tipos, consultas, mutaciones y definiciones de entrada de GraphQL SDL.

Parámetros clave y controles

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

Controla si las operaciones REST se asignan tanto a Query como a Mutation o se limitan únicamente a Query.

Por defecto: 'query-mutation'
inputNamingConvention'suffix-input' | 'prefix-input' | 'exact'

Define la convención de nomenclatura para tipos de objeto input generados a partir de cuerpos de solicitud.

Por defecto: 'suffix-input'
idFieldMapping'ID' | 'String' | 'Int'

Determina el tipo escalar de GraphQL para parámetros de ruta de URL e identificadores de entidad.

Por defecto: 'ID'
nullableMode'strict-non-null' | 'optional'

Controla si las propiedades obligatorias y los parámetros de ruta de OpenAPI se convierten con modificadores no nulos (!).

Por defecto: 'strict-non-null'
customScalars'enabled' | 'string-only'

Genera declaraciones de escalares personalizados de GraphQL (DateTime, UUID, JSON) para formatos de cadena de OpenAPI.

Por defecto: 'enabled'

Consejos profesionales y mejores prácticas

Generar tipos Input dedicados

GraphQL prohíbe el uso de tipos de objeto de salida (type) como argumentos de mutación. Genera siempre tipos 'Input' específicos para los cuerpos de solicitud de OpenAPI.

Directivas @rest en esquemas

Añade directivas de esquema como @rest(path: "/users/{id}", method: "GET") para permitir que Apollo Server RESTDataSource o GraphQL Mesh resuelvan los endpoints de forma transparente.

Mapear esquemas oneOf a uniones

Convierte esquemas oneOf con propiedad discriminadora en tipos union de GraphQL. Envuelve ramas escalares primitivas en objetos sintéticos, ya que GraphQL solo admite objetos en uniones.

Deduplicar modelos compartidos

Resuelve las definiciones en '#/components/schemas' como tipos GraphQL de nivel superior, evitando duplicaciones innecesarias a través de los diferentes endpoints.

Errores comunes y solución de problemas

Conflicto por duplicación de nombres entre el cuerpo de solicitud y la respuesta

Activa el sufijo 'Input' (por ejemplo, 'CreateUserInput') para que los tipos de entrada no colisionen con los tipos de salida que comparten el mismo nombre de esquema.

Error de sintaxis por escalares primitivos dentro de esquemas oneOf o anyOf

Las uniones de GraphQL no admiten tipos primitivos como String o Int. Envuelve las variantes primitivas en tipos de objeto contenedores con un campo 'value'.

Falta de respuesta 200/201 que causa un error de tipo de retorno indefinido

Verifica que cada operación en la especificación OpenAPI incluya un esquema de respuesta 2xx exitoso o proporciona un tipo de respuesta de estado genérico.

Preguntas frecuentes (FAQ)

¿Cómo se asignan los métodos HTTP REST a los tipos raíz de GraphQL?▼

Las operaciones GET se convierten en campos de Query, mientras que POST, PUT, PATCH y DELETE se transforman en campos de Mutation, con los parámetros de ruta y consulta como argumentos tipados.

¿Cómo se resuelven los componentes $ref de OpenAPI en GraphQL SDL?▼

Los esquemas compartidos en components/schemas o definitions se analizan y declaran como tipos e inputs reutilizables en GraphQL SDL, eliminando definiciones redundantes en línea.

¿Se pueden representar esquemas polimórficos de OpenAPI (oneOf/anyOf) en GraphQL?▼

Sí. Los esquemas oneOf basados en objetos con un discriminador se convierten en tipos union o interfaces de GraphQL. Las uniones de escalares se encapsulan en tipos contenedores.

¿Se envía mi especificación OpenAPI a algún servidor externo?▼

No. Todo el análisis, transformación sintáctica y generación de SDL se ejecuta 100% en la memoria de tu navegador local. No se transmiten ni almacenan datos.

¿Con qué motores y frameworks de GraphQL es compatible el SDL generado?▼

El esquema cumple con la especificación oficial de GraphQL (octubre de 2021 en adelante) y es totalmente compatible con Apollo Server, GraphQL Yoga, AWS AppSync, Nexus y GraphQL Mesh.

Herramientas y utilidades relacionadas

Todas las herramientas →
Guía de desarrollo del generador de esquemas TypeBox TypeScript desde DDL SQLDesarrollo

Convierta sentencias SQL CREATE TABLE en esquemas de validación en tiempo de ejecución de @sinclair/typebox utilizando Type.Object, Type.String, Type.Number y Type.Optional.

Abrir herramienta→
Guía para Desarrolladores del Generador de Código cURL a Rust (reqwest y tokio)Desarrollo

Transforma comandos cURL en solicitudes HTTP asíncronas e idiomáticas en Rust utilizando reqwest, serde_json, encabezados personalizados y el runtime de Tokio.

Abrir herramienta→
Guía de desarrollo del generador de código cURL a Ruby (Net::HTTP y Faraday)Desarrollo

Convierte comandos cURL en código Ruby limpio e idiomático utilizando Net::HTTP, URI, Faraday y gestión nativa de JSON.

Abrir herramienta→
Generador de NetworkPolicy de K8S Referencia TécnicaDesarrollo

Guía técnica para generar manifiestos declarativos de NetworkPolicy en Kubernetes, aislamiento zero-trust de pods, reglas de ingress/egress, bloques CIDR y puertos múltiples.

Abrir herramienta→
Guía para Desarrolladores del Generador YAML de Kubernetes RBAC Role y ClusterRoleBindingDesarrollo

Diseñe manifiestos de Kubernetes RBAC para Role, ClusterRole, RoleBinding y ClusterRoleBinding con grupos de API, verbos de recursos y cuentas de servicio.

Abrir herramienta→
Guía del Desarrollador del Generador de YAML de StatefulSet y Headless Service de KubernetesDesarrollo

Genere manifiestos de Kubernetes StatefulSet de nivel de producción con Headless Service, plantillas de volumen persistente (volumeClaimTemplates), réplicas y podManagementPolicy.

Abrir herramienta→