DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Console Rest Client


httpie + jq

httpie + jq

前者是curl的增强版,后者用来处理httpie返回的json结果。

http -b api.newfairs.com/Fair/_search query:='{ "match": { "nameZHCN": "中国上海国际栅栏护栏展览会暨研讨会" } }' size=5 fields:='["nameZHCN"]'
http -b api.newfairs.com/Fair/_search query:='{ "match": { "nameZHCN": "中国上海国际栅栏护栏展览会暨研讨会" } }' size=5 | jq '.hits.total'
http -b api.newfairs.com/Fair/_search query:='{ "match": { "nameZHCN": "中国上海国际栅栏护栏展览会暨研讨会" } }' size=5 | jq '.hits.hits[]._source.nameZHCN'
http -b api.newfairs.com/Fair/_search query:='{ "query": { "match": { "_id": "Ao3Ati9dvWBerBrn8" } } }' | jq '.hits.hits[]._source.nameZHCN'

http -b POST http://api.newfairs.com/Fair/_search query:='{"query":{"bool":{"must":[{"query_string":{"query":"五金机械"}}]}}}'|jq '.hits.hits[]._source.recurrence[].timeStart'

-b 代表只显示response的body,不显示head,以方便后续jq进行下一步处理, 中括号代表array,例如jq '.hits.hits[0]'表示只显示第一个结果, hits[]代表返回数组里的所有结果。

这二者结合fzf,可以实现Postman/Insomnia这类GUI工具的功能。

Insomnia

Insomnia: Chrome App.

Pros

  • Request和Response窗口是左右排列的,且宽度可以调节;

  • 分级管理Request: Workspace -> Group -> Request, 只能同时打开一个Workspace,比Postman更整洁;

  • 良好的快捷键支持,request body和环境变量编辑窗口中可以使用vi编辑模式;

  • 可以为每个Workspace定义环境变量,然后在url中使用这些环境变量,见下面的演示;

  • 按名称搜索request: 默认快捷键Ctrl-P;

Cons

  • 没有云同步,只能本地import/export;

Postman

Postman: Chrome App.

Pros

  • 分级管理request: Collection -> Folder -> Request,可以方便地搜索; Collection实际就是高一级的Folder,当request数量多时,request面板会比较凌乱;

  • 可以同步到云端,在不同机器上方便地同步;

Cons

Request和Response窗口是上下排列的,当调试Post方法时, 打开的Body窗体基本占满了整个屏幕,而且是最小高度,不能再减小, 导致每次看response内容都要使用滚轮,非常不方便。

Discussion

Insomnia的环境变量

例如定义下面的环境变量:

{
    "api_url": "http://api.newfairs.com",
    "inner_url": "http://192.168.100.24:9200/"
}

在request的url栏里可以这样定义url: {{api_url}}/Fair/_search, 点击request名称后面的三角图标并选择"Export as cURL",可以看到url被替换成了 http://api.newfairs.com/Fair/_search.

其他类似工具

Firefox插件:Poster, RESTED, REST Easy, RESTClient. 前三者都不具备多Request管理功能,无法保存多个Request. RESTClient可以定义favorite,但没有单独的窗体,查看不方便。



Published

Apr 9, 2016

Last Updated

Apr 9, 2016

Category

Tech

Tags

  • chrome 9
  • client 3
  • gui 9
  • httpie 1
  • jq 1
  • rest 4

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor