"Graph endpoint: https://graph.yehia.dev/graphql"
"GraphiQL client: https://graph.yehia.dev/graphiql"
"Introspection Query:"
"""
  query IntrospectionQuery {\n
    __schema {\n
      queryType { name }\n
      mutationType { name }\n
      subscriptionType { name }\n
      types {\n
        ...FullType\n
      }\n
      directives {\n
        name\n
        description\n
        args {\n
          ...InputValue\n
        }\n
        \n
        locations\n
      }\n
    }\n
  }\n
\n
  fragment FullType on __Type {\n
    kind\n
    name\n
    description\n
    fields(includeDeprecated: true) {\n
      name\n
      description\n
      args {\n
        ...InputValue\n
      }\n
      type {\n
        ...TypeRef\n
      }\n
      isDeprecated\n
      deprecationReason\n
    }\n
    inputFields {\n
      ...InputValue\n
    }\n
    interfaces {\n
      ...TypeRef\n
    }\n
    enumValues(includeDeprecated: true) {\n
      name\n
      description\n
      isDeprecated\n
      deprecationReason\n
    }\n
    possibleTypes {\n
      ...TypeRef\n
    }\n
  }\n
\n
  fragment InputValue on __InputValue {\n
    name\n
    description\n
    type { ...TypeRef }\n
    defaultValue\n
  }\n
\n
  fragment TypeRef on __Type {\n
    kind\n
    name\n
    ofType {\n
      kind\n
      name\n
      ofType {\n
        kind\n
        name\n
        ofType {\n
          kind\n
          name\n
          ofType {\n
            kind\n
            name\n
            ofType {\n
              kind\n
              name\n
              ofType {\n
                kind\n
                name\n
                ofType {\n
                  kind\n
                  name\n
                }\n
              }\n
            }\n
          }\n
        }\n
      }\n
    }\n
  }
"""
"SDL:"
"""
type Mutation {\n
  """Login a user"""\n
  loginUser(\n
    """The email of user"""\n
    email: String!\n
\n
    """The password of user"""\n
    password: String!\n
  ): String!\n
\n
  """Create a user"""\n
  createUser(\n
    """The name of user"""\n
    name: String!\n
\n
    """The email of user"""\n
    email: String!\n
\n
    """The password of user"""\n
    password: String!\n
\n
    """The secret of user"""\n
    secret: String!\n
  ): User!\n
\n
  """Update a user"""\n
  updateUser(\n
    """The id of user"""\n
    id: ID!\n
\n
    """The name of user"""\n
    name: String\n
\n
    """The email of user"""\n
    email: String\n
\n
    """The secret of user"""\n
    secret: String\n
  ): User!\n
\n
  """Delete a user"""\n
  deleteUser(\n
    """The id of user to delete"""\n
    id: ID!\n
  ): Boolean!\n
\n
  """Create a post"""\n
  createPost(\n
    """The name of post"""\n
    title: String!\n
\n
    """The secret of content"""\n
    content: String!\n
  ): Post!\n
\n
  """Update a post"""\n
  updatePost(\n
    """The id of post"""\n
    id: ID!\n
\n
    """The title of post"""\n
    title: String\n
\n
    """The content of post"""\n
    content: String\n
  ): Post!\n
\n
  """Delete a post"""\n
  deletePost(\n
    """The id of post to delete"""\n
    id: ID!\n
  ): Boolean!\n
}\n
\n
"""A post"""\n
type Post {\n
  """The id of the post"""\n
  id: ID!\n
\n
  """The title of post"""\n
  title: String\n
\n
  """The content of post"""\n
  content: String\n
\n
  """The owner of the post"""\n
  user: User!\n
}\n
\n
type PostPagination {\n
  """List of items on the current page"""\n
  data: [Post]\n
\n
  """Number of total items selected by the query"""\n
  total: Int!\n
\n
  """Number of items returned per page"""\n
  per_page: Int!\n
\n
  """Current page of the cursor"""\n
  current_page: Int!\n
\n
  """Number of the first item returned"""\n
  from: Int\n
\n
  """Number of the last item returned"""\n
  to: Int\n
\n
  """The last page (number of pages)"""\n
  last_page: Int!\n
\n
  """Determines if cursor has more pages after the current page"""\n
  has_more_pages: Boolean!\n
}\n
\n
type Query {\n
  me(id: ID, name: String, email: String): User\n
  users(id: ID, name: String, email: String, page: Int): UserPagination\n
  posts(id: ID, userId: ID, title: String, page: Int): PostPagination\n
}\n
\n
"""A user"""\n
type User {\n
  """The id of the user"""\n
  id: ID!\n
\n
  """The name of user"""\n
  name: String\n
\n
  """The email of user"""\n
  email: String\n
\n
  """The secret of user"""\n
  secret: String\n
}\n
\n
type UserPagination {\n
  """List of items on the current page"""\n
  data: [User]\n
\n
  """Number of total items selected by the query"""\n
  total: Int!\n
\n
  """Number of items returned per page"""\n
  per_page: Int!\n
\n
  """Current page of the cursor"""\n
  current_page: Int!\n
\n
  """Number of the first item returned"""\n
  from: Int\n
\n
  """Number of the last item returned"""\n
  to: Int\n
\n
  """The last page (number of pages)"""\n
  last_page: Int!\n
\n
  """Determines if cursor has more pages after the current page"""\n
  has_more_pages: Boolean!\n
}\n
"""