OpenAPI・Swagger GraphQL SDL スキーマ変換ツール
OpenAPI 3.0/3.1およびSwagger 2.0のRESTエンドポイント、リクエストボディ、JSON SchemaをGraphQL SDLの型定義、Query、Mutation、Inputへマッピングする開発者向け技術仕様書。
# ==============================================================================
# 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
}
100% ローカルメモリ安全保証
社外秘のAPI仕様書や内部データモデルを外部サーバーへ一切送信せず、ブラウザ内JavaScriptでのみ高速変換を実行します。
完全な GraphQL SDL 自動合成
GETエンドポイントをQueryフィールドへ、POST/PUT/PATCH/DELETEを型安全なMutationへ自動昇格し、複雑なJSONスキーマをGraphQLオブジェクト型にマッピング。
Apollo Server & Relay 即時互換
Apollo Server、GraphQL Yoga、Nexus、AWS AppSync、Hasura、GraphQL Code Generatorでそのまま即座に利用可能な標準SDLを出力。