Pandora服务使用七牛统一的签名鉴权服务,我们针对开源的httpie服务,增加了七牛的签名认证功能,使用httpie来发送API请求非常便捷。

Pandora httpie github地址:https://github.com/kirk-enterprise/httpie

安装命令行工具

在命令行中输入以下内容安装:

  1. pip install --upgrade https://github.com/kirk-enterprise/httpie/tarball/master

小提示:
pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,使用pip需要保证您的电脑上有python环境,并且已安装pip。

pip 的简单安装方法: sudo easy_install pip

!> 注意:若提示安装失败,可在命令行头部加上 sudo 命令

安装后的工具命令为 http

使用httpie

发送POST请求

  1. 发送POST请求需要先将请求的body写在文件中
  1. echo '{
  2. "region": "nb",
  3. "schema": [
  4. {
  5. "key": "userName",
  6. "valtype": "string"
  7. },
  8. {
  9. "key": "age",
  10. "valtype": "float"
  11. },
  12. {
  13. "elemtype": "long",
  14. "key": "addresses",
  15. "valtype": "array"
  16. },
  17. {
  18. "key": "profile",
  19. "schema": [
  20. {
  21. "key": "position",
  22. "valtype": "string"
  23. },
  24. {
  25. "key": "salary",
  26. "valtype": "float"
  27. },
  28. {
  29. "elemtype": "string",
  30. "key": "education",
  31. "valtype": "array"
  32. }
  33. ],
  34. "valtype": "map"
  35. }
  36. ]
  37. }' > body.json
  1. 发送POST请求
  1. http --verbose --ak=<qiniu_ak> --sk=<qiniu_sk> --auth-qiniu-type=pandora/mac POST https://pipeline.qiniu.com/v2/repos/testdemo < body.json

得到返回:

  1. HTTP/1.1 200 OK
  2. {}

此时我们创建了一个名为testdemo的消息队列;
POST请求发送和返回完成。

发送GET请求

  1. http --ak=<qiniu_ak> --sk=<qiniu_sk> --auth-qiniu-type=pandora/mac GET https://pipeline.qiniu.com/v2/repos/testdemo

得到返回

  1. HTTP/1.1 200 OK
  2. {
  3. "derivedFrom": "",
  4. "group": "",
  5. "region": "nb",
  6. "schema": [
  7. {
  8. "key": "userName",
  9. "required": false,
  10. "valtype": "string"
  11. },
  12. {
  13. "key": "age",
  14. "required": false,
  15. "valtype": "float"
  16. },
  17. {
  18. "elemtype": "long",
  19. "key": "addresses",
  20. "required": false,
  21. "valtype": "array"
  22. },
  23. {
  24. "key": "profile",
  25. "required": false,
  26. "schema": [
  27. {
  28. "key": "position",
  29. "required": false,
  30. "valtype": "string"
  31. },
  32. {
  33. "key": "salary",
  34. "required": false,
  35. "valtype": "float"
  36. },
  37. {
  38. "elemtype": "string",
  39. "key": "education",
  40. "required": false,
  41. "valtype": "array"
  42. }
  43. ],
  44. "valtype": "map"
  45. }
  46. ]
  47. }