{"action":"reopened","issue":{"url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL/issues/35","repository_url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL","labels_url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL/issues/35/comments","events_url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL/issues/35/events","html_url":"https://github.com/bazingatechnologies/FSharp.Data.GraphQL/issues/35","id":154721364,"number":35,"title":"GraphQL client","user":{"login":"Horusiath","id":679705,"avatar_url":"https://avatars.githubusercontent.com/u/679705?v=3","gravatar_id":"","url":"https://api.github.com/users/Horusiath","html_url":"https://github.com/Horusiath","followers_url":"https://api.github.com/users/Horusiath/followers","following_url":"https://api.github.com/users/Horusiath/following{/other_user}","gists_url":"https://api.github.com/users/Horusiath/gists{/gist_id}","starred_url":"https://api.github.com/users/Horusiath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Horusiath/subscriptions","organizations_url":"https://api.github.com/users/Horusiath/orgs","repos_url":"https://api.github.com/users/Horusiath/repos","events_url":"https://api.github.com/users/Horusiath/events{/privacy}","received_events_url":"https://api.github.com/users/Horusiath/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/bazingatechnologies/FSharp.Data.GraphQL/labels/low-priority","name":"low-priority","color":"0e8a16"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-05-13T14:13:49Z","updated_at":"2016-06-13T11:54:25Z","closed_at":null,"body":"To give an ability to work with GraphQL not only on the server side, but also on the client and service-to-service, we should create a client for it. This is a very good place to introduce Type Provider, as we could generate the whole GraphQL API from simple introspection query.\r\n\r\nNotes:\r\n\r\n- We shouldn't use hard dependency on JSON serializer. GraphQL doesn't specify serialization format, which should be left to user (or plugable). Example: in the case of cross microservice calls, faster and more compact formats would be probably better than JSON.\r\n\r\nLinks:\r\n\r\n- [GraphQL introspection query](https://github.com/bazingatechnologies/FSharp.Data.GraphQL/blob/dev/src/FSharp.Data.GraphQL/Introspection.fs#L14), which by default returns a schema information.\r\n- [Introspection specification](https://facebook.github.io/graphql/#sec-Introspection)\r\n- Great [blog section](http://blog.mavnn.co.uk/blog/categories/typeprovider/) about type providers."}}
{"actor":{"display_login":"Horusiath"}}