浏览代码

Update README;

Bjorn Swenson 9 年之前
父节点
当前提交
ab6965204d
共有 1 个文件被更改,包括 61 次插入31 次删除
  1. 61 31
      README.md

+ 61 - 31
README.md

@@ -3,65 +3,95 @@ GraphQL Lua
 
 Lua implementation of GraphQL.
 
-API
+Example
 ---
 
-Parsing queries:
-
 ```lua
 local parse = require 'graphql.parse'
+local schema = require 'graphql.schema'
+local types = require 'graphql.types'
+local validate = require 'graphql.validate'
+local execute = require 'graphql.execute'
+
+-- Parse a query
 local ast = parse [[
-query getUser {
-  firstName
-  lastName
+query getUser($id: ID) {
+  person(id: $id) {
+    firstName
+    lastName
+  }
 }
 ]]
-```
 
-Creating schemas:
-
-```lua
-local schema = require 'graphql.schema'
-local types = require 'graphql.types'
-
-local person = types.object {
+-- Create a type
+local Person = types.object {
   name = 'Person',
   fields = {
-    firstName = types.string.nonNull
-    lastName = types.string.nonNull
+    id = types.id.nonNull,
+    firstName = types.string.nonNull,
+    middleName = types.string,
+    lastName = types.string.nonNull,
+    age = types.int.nonNull
   }
 }
 
+-- Create a schema
 local schema = schema.create {
   query = types.object {
     name = 'Query',
     fields = {
-      person = person
+      person = {
+        kind = Person,
+        arguments = {
+          id = types.id
+        },
+        resolve = function(rootValue, arguments)
+          if arguments.id ~= 1 then return nil end
+
+          return {
+            id = 1,
+            firstName = 'Bob',
+            lastName = 'Ross',
+            age = 52
+          }
+        end
+      }
     }
   }
 }
-```
-
-Validating schemas:
 
-```lua
-local validate = require 'graphql.validate'
+-- Validate a parsed query against a schema
 validate(schema, ast)
-```
-
-Executing queries:
 
-```lua
-local execute = require 'graphql.execute'
+-- Execution
 local rootValue = {}
-local variables = {
-  foo = 'bar'
-}
-local operationName = 'myOperation'
+local variables = { id = 1 }
+local operationName = 'getUser'
 
 execute(schema, ast, rootValue, variables, operationName)
+
+--[[
+{
+  person = {
+    firstName = 'Bob',
+    lastName = 'Ross'
+  }
+}
+]]
 ```
 
+Status
+---
+
+- [x] Parsing
+  - [ ] Improve error messages
+- [x] Type system
+- [ ] Introspection
+- [x] Validation
+- [x] Execution
+  - [ ] Asynchronous execution (coroutines)
+- [ ] Example server
+
 Running tests
 ---