1234567891011121314151617181920212223242526272829303132333435363738 |
- id: 'idea--http-repl'
- content: |
- It might be overkill, but it also might make sense to implement a rich
- REPL as a hypermedia API. This would mean that a language could expose
- an interactive server on HTTP somewhere.
- You could start by requesting the root, which will give you various
- options for how to proceed.
- GET / HTTP/1.1
- HOST: localhost:9999
- Accept: application/ld+json
- You will then get back a JSON object that describes the current state
- of the interpreter and (more importantly) set of links that describe
- how to proceed.
- HTTP/1.1 200 OK
- Content-Type: application/ld+json
- Content-Length: ....
- Link: </>; rel=index
- { "@context": "http://api.example.com/repl"
- , "history" : []
- , "bindings": []
- , "operation":
- [ { "@type": "CreateResourceOperation"
- , "title": "Evalute an expression"
- , "method": "POST"
- , "expects": "http://api.example.com/expression"
- , "returns": "http://api.example.com/value"
- }
- ]
- }
- This gives us a set of options. We can then `POST` a new command to
- interpret.
- related: []
|