Skip to content

Latest commit

 

History

History

rest-pastebin

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

REST pastebin example

To try this example, you need GNU make and git in your PATH.

If you don’t have HTTPie installed, use the appropriate cURL commands instead.

Building

To build the example, run the following command:

make

Starting

Release

To start the release in the foreground:

./_rel/rest-pastebin-example/bin/rest-pastebin-example console

Note: The previous command also starts an Erlang console.

LFE

To start the app and an LFE shell:

lfe -pa ebin -pa deps/*/ebin -s rest-pastebin # make dev

Usage

Point your browser at http://localhost:8080.

To upload something to the pastebin application, you can use http:

http -f :8080 paste=(<command>) Content-Type:application/x-www-form-urlencoded

Or, to upload the file my-file:

http -f :8080 paste=@my-file Content-Type:application/x-www-form-urlencoded

The URL of your data will be in the location header. Alternately, you can visit http://localhost:8080 with your favorite web browser and submit your paste via the form.

Code that has been pasted can be highlighted with ?lang=<language> option if you have highlight installed (although pygments or any other should work just fine).

This will show the contents of the HTML file:

http -vf --follow :8080 paste=@priv/index.html \
     Content-Type:application/x-www-form-urlencoded # drop charset=utf-8

If your terminal supports color sequences and highlight is installed, the following command will show the same contents but with HTML syntax highlighting.

http <url from location header> lang==html

Example Output

http -vf --follow :8080 paste=(echo 'Testing 123') \
     Content-Type:application/x-www-form-urlencoded # drop charset=utf-8
GET /oZCkVBbs HTTP/1.1
Accept-Encoding: gzip, deflate
Host: localhost:8080
Accept: */*
User-Agent: HTTPie/0.9.3
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
server: Cowboy
date: Tue, 05 Jan 2016 22:09:19 GMT
content-length: 12
content-type: text/plain
vary: accept
Testing 123
http -vf --follow :8080 paste=@priv/index.html \
     Content-Type:application/x-www-form-urlencoded # drop charset=utf-8
GET /H3s2MhU2 HTTP/1.1
Accept-Encoding: gzip, deflate
Host: localhost:8080
Accept: */*
User-Agent: HTTPie/0.9.3
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
HTTP/1.1 200 OK
server: Cowboy
date: Tue, 05 Jan 2016 22:02:30 GMT
content-length: 543
content-type: text/plain
vary: accept
<!DOCTYPE html>
<html>
  <head>
    <title>Simple Pastebin</title>
  </head>
  <body>
    <h1>Simple Pastebin</h1>
    <p>
      You can paste your text into the text field to submit, or you can
      capture the output of a command with:
    </p>
    <code>
      <i>command</i> | curl -i --data-urlencode paste@- localhost:8080
    </code>
    <form action="/" method="post">
      <textarea cols="80" rows="15" name="paste"></textarea>
      <div>
        <button type="submit">Upload your code</button>
      </div>
    </form>
  </body>
</html>