{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/haskell-ide-engine/issues/19","repository_url":"https://api.github.com/repos/haskell/haskell-ide-engine","labels_url":"https://api.github.com/repos/haskell/haskell-ide-engine/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/haskell/haskell-ide-engine/issues/19/comments","events_url":"https://api.github.com/repos/haskell/haskell-ide-engine/issues/19/events","html_url":"https://github.com/haskell/haskell-ide-engine/issues/19","id":115268767,"number":19,"title":"Provide REST API explorer","user":{"login":"alanz","id":409607,"avatar_url":"https://avatars.githubusercontent.com/u/409607?v=3","gravatar_id":"","url":"https://api.github.com/users/alanz","html_url":"https://github.com/alanz","followers_url":"https://api.github.com/users/alanz/followers","following_url":"https://api.github.com/users/alanz/following{/other_user}","gists_url":"https://api.github.com/users/alanz/gists{/gist_id}","starred_url":"https://api.github.com/users/alanz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alanz/subscriptions","organizations_url":"https://api.github.com/users/alanz/orgs","repos_url":"https://api.github.com/users/alanz/repos","events_url":"https://api.github.com/users/alanz/events{/privacy}","received_events_url":"https://api.github.com/users/alanz/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/haskell/haskell-ide-engine/labels/Well%20Defined%20Task%20-%20Awaiting%20PR","name":"Well Defined Task - Awaiting PR","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":24,"created_at":"2015-11-05T11:54:40Z","updated_at":"2016-03-02T15:52:35Z","closed_at":null,"body":"The fledgeling HIE has a JSON API. This includes some introspection as to what plugins are available, and what commands they provide, together with their parameters.\r\n\r\nProvide an application that can interact with the API, and present the results in a meaningful way.\r\n\r\ni.e.\r\n\r\n```\r\n$ stack build\r\n$ stack exec hie -- --repl -d\r\n```\r\n\r\nThen access `http://localhost:8001/` as in\r\n\r\n```\r\ncurl -v http://localhost:8081/req/base -X POST -H Content-Type:application/json --data-binary '{\"ideParams\":{},\"ideCommand\":\"version\",\"ideContext\":{\"ctxEndPos\":null,\"ctxCabal\":null,\"ctxStartPos\":null,\"ctxFile\":null}}'\r\n````\r\n\r\nPossibly consider using http://swagger.io, especially as there is now [servant-swagger](http://hackage.haskell.org/package/servant-swagger)\r\n\r\nOr any other appropriate technology. It needs to be able to run locally though.\r\n\r\ncc @kRITZCREEK\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/haskell/haskell-ide-engine/issues/comments/191298258","html_url":"https://github.com/haskell/haskell-ide-engine/issues/19#issuecomment-191298258","issue_url":"https://api.github.com/repos/haskell/haskell-ide-engine/issues/19","id":191298258,"user":{"login":"alanz","id":409607,"avatar_url":"https://avatars.githubusercontent.com/u/409607?v=3","gravatar_id":"","url":"https://api.github.com/users/alanz","html_url":"https://github.com/alanz","followers_url":"https://api.github.com/users/alanz/followers","following_url":"https://api.github.com/users/alanz/following{/other_user}","gists_url":"https://api.github.com/users/alanz/gists{/gist_id}","starred_url":"https://api.github.com/users/alanz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alanz/subscriptions","organizations_url":"https://api.github.com/users/alanz/orgs","repos_url":"https://api.github.com/users/alanz/repos","events_url":"https://api.github.com/users/alanz/events{/privacy}","received_events_url":"https://api.github.com/users/alanz/received_events","type":"User","site_admin":false},"created_at":"2016-03-02T15:52:35Z","updated_at":"2016-03-02T15:52:35Z","body":"@ankhers @tobiasgwaaler @cocreature Is anyone making progress on this? I have some time available and want to get my brain around the tech for my day job, so I can tackle it if not"}}