•  


GraphQL | A query language for your API
?? GraphQLConf 2024 ? Sept 10-12 ? San Francisco ? Schedule Coming Soon! ? Read more

GraphQL

Describe your data

type
 Project
 {

  name
: 
String

  tagline
: 
String

  contributors
: [
User
]

}

Ask for what you want

{

  project
(
name
: 
"GraphQL"
) {

    tagline

  }

}

Get predictable results

{

  "project"
: {

    "tagline"
: 
"A query language for APIs"

  }

}
Get Started

A query language for your API

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

Ask for what you need,
get exactly that

Send a GraphQL query to your API and get exactly what you need, nothing more and nothing less. GraphQL queries always return predictable results. Apps using GraphQL are fast and stable because they control the data they get, not the server.

Get many resources
in a single request

GraphQL queries access not just the properties of one resource but also smoothly follow references between them. While typical REST APIs require loading from multiple URLs, GraphQL APIs get all the data your app needs in a single request. Apps using GraphQL can be quick even on slow mobile network connections.

Describe what's possible
with a type system

GraphQL APIs are organized in terms of types and fields, not endpoints. Access the full capabilities of your data from a single endpoint. GraphQL uses types to ensure Apps only ask for what's possible and provide clear and helpful errors. Apps can use types to avoid writing manual parsing code.

Move faster with powerful developer tools

Know exactly what data you can request from your API without leaving your editor, highlight potential issues before sending a query, and take advantage of improved code intelligence. GraphQL makes it easy to build powerful tools like Graph i QL by leveraging your API’s type system.

Evolve your API
without versions

Add new fields and types to your GraphQL API without impacting existing queries. Aging fields can be deprecated and hidden from tools. By using a single evolving version, GraphQL APIs give apps continuous access to new features and encourage cleaner, more maintainable server code.

Bring your own data and code

GraphQL creates a uniform API across your entire application without being limited by a specific storage engine. Write GraphQL APIs that leverage your existing data and code with GraphQL engines available in many languages. You provide functions for each field in the type system, and GraphQL calls them with optimal?concurrency.

  • GraphQL
    type
     Character
     {
    
      name
    : 
    String
    
      homeWorld
    : 
    Planet
    
      friends
    : [
    Character
    ]
    
    }
    
  • JavaScript
    // type Character {
    
    class
     Character
     {
    
      // name: String
    
      getName
    () {
    
        return
     this
    ._name
    
      }
    
      // homeWorld: Planet
    
      getHomeWorld
    () {
    
        return
     fetchHomeworld
    (
    this
    ._homeworldID)
    
      }
    
      // friends: [Character]
    
      getFriends
    () {
    
        return
     this
    ._friendIDs.
    map
    (fetchCharacter)
    
      }
    
    }
    
  • Python
    # type Character {
    
    class
     Character
    :
    
      # name: String
    
      def
     name
    (self):
    
        return
     self
    ._name
    
     
      # homeWorld: Planet
    
      def
     homeWorld
    (self):
    
        return
     fetchHomeworld(
    self
    ._homeworldID)
    
     
      # friends: [Character]
    
      def
     friends
    (self):
    
        return
     map
    (fetchCharacter, 
    self
    ._friendIDs)
    
  • C Sharp
    // type Character {
    
    public
     class
     Character
     {
    
      // name: String
    
      public
     String
     Name
     { 
    get
    ; }
    
     
      // homeWorld: Planet
    
      public
     async
     Task
    <
    Planet
    > 
    GetHomeWorldAsync
    () {
    
        return
     await
     FetchHomeworldAsync
    (_HomeworldID);
    
      }
    
     
      // friends: [Character]
    
      public
     async
     IEnumerable
    <
    Task
    <
    Character
    >> 
    GetFriendsAsync
    () {
    
        return
     _FriendIDs.
    Select
    (FetchCharacterAsync);
    
      }
    
    }
    
  • GraphQL
    type
     Character
     {
    
      name
    : 
    String
    
      homeWorld
    : 
    Planet
    
      friends
    : [
    Character
    ]
    
    }
    
  • JavaScript
    // type Character {
    
    class
     Character
     {
    
      // name: String
    
      getName
    () {
    
        return
     this
    ._name
    
      }
    
      // homeWorld: Planet
    
      getHomeWorld
    () {
    
        return
     fetchHomeworld
    (
    this
    ._homeworldID)
    
      }
    
      // friends: [Character]
    
      getFriends
    () {
    
        return
     this
    ._friendIDs.
    map
    (fetchCharacter)
    
      }
    
    }
    
  • Python
    # type Character {
    
    class
     Character
    :
    
      # name: String
    
      def
     name
    (self):
    
        return
     self
    ._name
    
     
      # homeWorld: Planet
    
      def
     homeWorld
    (self):
    
        return
     fetchHomeworld(
    self
    ._homeworldID)
    
     
      # friends: [Character]
    
      def
     friends
    (self):
    
        return
     map
    (fetchCharacter, 
    self
    ._friendIDs)
    
  • C Sharp
    // type Character {
    
    public
     class
     Character
     {
    
      // name: String
    
      public
     String
     Name
     { 
    get
    ; }
    
     
      // homeWorld: Planet
    
      public
     async
     Task
    <
    Planet
    > 
    GetHomeWorldAsync
    () {
    
        return
     await
     FetchHomeworldAsync
    (_HomeworldID);
    
      }
    
     
      // friends: [Character]
    
      public
     async
     IEnumerable
    <
    Task
    <
    Character
    >> 
    GetFriendsAsync
    () {
    
        return
     _FriendIDs.
    Select
    (FetchCharacterAsync);
    
      }
    
    }
    

Who's using GraphQL?

Facebook's mobile apps have been powered by GraphQL since 2012. A GraphQL spec was open sourced in 2015 and is now available in many environments and used by teams of all sizes.

FacebookGitHubPinterestIntuitCourseraShopify
More GraphQL Users
- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본