Noir supports various output formats such as JSON, YAML, among others.
Basic
noir -b sources
# GET /secret.html
# GET /posts
# GET /posts/1
# POST /posts {"id":"","title":"","context":""} X-API-KEY:
# PUT /posts/1 {"id":"","title":"","context":""} X-API-KEY:
# DELETE /posts/1
JSON
noir -b sources -f json
# [{"url":"/secret.html","method":"GET","params":[],"headers":[],"protocol":"http"},{"url":"/posts","method":"GET","params":[],"headers":[],"protocol":"http"},{"url":"/posts/1","method":"GET","params":[],"headers":[],"protocol":"http"},{"url":"/posts","method":"POST","params":[{"name":"id","value":"","param_type":"json"},{"name":"title","value":"","param_type":"json"},{"name":"context","value":"","param_type":"json"},{"name":"X-API-KEY","value":"","param_type":"header"}],"headers":[],"protocol":"http"},{"url":"/posts/1","method":"PUT","params":[{"name":"id","value":"","param_type":"json"},{"name":"title","value":"","param_type":"json"},{"name":"context","value":"","param_type":"json"},{"name":"X-API-KEY","value":"","param_type":"header"}],"headers":[],"protocol":"http"},{"url":"/posts/1","method":"DELETE","params":[],"headers":[],"protocol":"http"}]
YAML
noir -b sources -f json
# ---
# - url: /secret.html
# method: GET
# params: []
# headers: []
# protocol: http
# - url: /posts
# method: GET
# params: &1 []
# headers: []
# protocol: http
# ....
Curl
noir -b sources -f curl
# curl -i -X GET /secret.html
# curl -i -X GET /posts
# curl -i -X GET /posts/1
# curl -i -X POST /posts -d "{"id":"","title":"","context":""}" -H "Content-Type:application/json" -H "X-API-KEY: "
# curl -i -X PUT /posts/1 -d "{"id":"","title":"","context":""}" -H "Content-Type:application/json" -H "X-API-KEY: "
# curl -i -X DELETE /posts/1
HTTpie
noir -b sources -f httpie
# http GET /secret.html
# http GET /posts
# http GET /posts/1
# http POST /posts {"id":"","title":"","context":""} "Content-Type:application/json" "X-API-KEY: "
# http PUT /posts/1 {"id":"","title":"","context":""} "Content-Type:application/json" "X-API-KEY: "
# http DELETE /posts/1
Markdown Table
noir -b . -f markdown-table
# | Endpoint | Protocol | Params |
# | -------- | -------- | ------ |
# | GET /secret.html | http | |
# | GET /posts | http | |
# | GET /posts/1 | http | |
# | POST /posts | http | `id (json)` `title (json)` `context (json)` `X-API-KEY (header)` |
# | PUT /posts/1 | http | `id (json)` `title (json)` `context (json)` `X-API-KEY (header)` |
# | DELETE /posts/1 | http | |
OAS2/OAS3
noir -b . -f oas2
noir -b . -f oas3
# OAS2
# {"swagger":"2.0","info":{"title":"Generated by Noir","version":""},"basePath":"","paths":{"/secret.html":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}},"/posts":{"post":{"responses":{"200":{"description":"Successful response"}},"parameters":[{"name":"id","in":"form"},{"name":"title","in":"form"},{"name":"context","in":"form"},{"name":"X-API-KEY","in":"header"}]}},"/posts/1":{"delete":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}}}}
# OAS3
# {"openapi":"3.0.0","info":{"title":"Generated by Noir","version":""},"paths":{"/secret.html":{"get":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}},"/posts":{"post":{"responses":{"200":{"description":"Successful response"}},"parameters":[{"name":"id","in":"form"},{"name":"title","in":"form"},{"name":"context","in":"form"},{"name":"X-API-KEY","in":"header"}]}},"/posts/1":{"delete":{"responses":{"200":{"description":"Successful response"}},"parameters":[]}}}}