http://blog.mashape.com/postman-httpie-test-apis/

We love working with APIs at Mashape, and we love sharing with our community new tools that make your life easier when consuming APIs.

Today, we’re taking a look at POSTMAN (Free edition), a GUI powered API client and HTTPie a powerful CLI replacement (or addition) for cURL.

1. POSTMAN

POSTMAN is a compelling HTTP client for APIs built by Abhinav Asthana. With POSTMAN you can consume APIs in a straightforward way, solving the complexity of complex HTTP query and parsing. You can download POSTMAN here: http://www.getpostman.com/. As the website states, this tool has been the highest rated productivity app on the Chrome Web Store with more than 500,000 downloads.

Fig 1. This is what POSTMAN looks like at first glance

Personally I find that POSTMAN has a very clean and simple interface that allows anyone to consume APIs in matter of seconds. After the installation, you can run this tool as a web-packaged app running independently of your Chrome browser. This means you still need Chrome to be installed somewhere on your machine.

In terms of features, POSTMAN has the ability to quickly run API queries and have a back-log (called History in POSTMAN) that allows anyone to replay a certain query, or multiple. This is a great way when you’re testing an API and want to play with different values without having to copy-paste the request over and over, while maintaining (using the option) every single output response from the server.

Quickly Abstract your API documentation

A clear documentation is often the key to a good API. After all, it is vital that a developer is able to understand your product and consume your API easily. So why not prepare a bunch of API requests with pre-filled data for him to test different aspects?

At Mashape we allow you to document your API, and insert default values to kickstart the API development and consumption process. On top of that, we allow you to give meaningful response models to each call. This way when someone runs a query against an endpoint, there will be no surprises! A good way to understand how to structure your documentation is to have a bunch of endpoints with pre-filled values hosted somewhere. And this is where POSTMAN comes in handy, you can arrange API calls in folders called Collections.

POSTMAN allows you to collect a bunch of endpoints into a collection for later use. This is a great way to get ready to deploy your documentation on Mashape as it gives you an idea of which endpoints, parameters and models you’ll be using when documenting your API.

Multiple Auth Support

Nearly all APIs require a form of authentication.

  • Basic Authentication – The typical https://apikey:secretkey@api.site.com/resource combo to authenticate a request
  • Query Authentication – Using a parameter passed with each request to authorise it such as: https://api.site.com/?token=123abc
  • OAuth 1a and 2 Authentication – The typical Oauth authentication flow

API Testing (PAID plan)

With the paid plan, you can use simple Javascript code snippets to test your API responses. Some of the tests you can run in POSTMAN are checking response times, status codes and validating server responses. The Test suite allows to cut down on development lines of code written by developers to test APIs, but it comes with a small cost as this feature is actually only available to paid users at $9.99$ for a lifetime license.

2. HTTPie

If you work with APIs, you most probably have used cURL at least a couple of times in your life. cURL is extremely powerful, but a pain in the back to use when dealing with a lot of API calls written manually. HTTPie sets itself as a solution to the verbosity and “complexity” of cURL commands. In my opinion it’s great and if you’ve not been using HTTPie in your workflow you’re missing out!

cURL vs HTTPie

curl -u "APINAME:APIKEY" -X POST -d '{"name": "orliesaurus", "Age": 12, "Vegan": false}' -H "Content-type: application/json" https://api.arewesome.ws/v0/user.json

or the same re-written in HTTPie’s lingo

http -a "APINAME:APIKEY" POST name="orliesaurus" Age:=12 Vegan:=false https://api.arewesome.ws/v0/user.json

Way better right?

These are the things you need to remember when using HTTPie, pretty much, the rest comes au naturel!

Item Type Description
HTTP Headers Name:Value Arbitrary HTTP header, e.g. X-API-Token:123.
URL parameters name == value Appends the given name/value pair as a query string parameter to the URL. The == separator is used.
Data Fields field=value,field=@file.txt Request data fields to be serialized as a JSON object (default), or to be form-encoded (–form, -f).
Raw JSON fields field:=json,field:=@file.json Useful when sending JSON and one or more fields need to be a Boolean,Number, nested Object, or an Array, e.g., meals:='[“ham”,”spam”]’ or pies:=[1,2,3] (note the quotes).
Form File Fields field@/dir/file Only available with –form, -f. For example: screenshot@~/Pictures/img.png. The presence of a file field results in a multipart/form-data request.

So what are you waiting for?

pip install --upgrade httpie

or if you’re on MAC OS and want to use brew:

brew install httpie

POSTMAN and HTTPie to test APIs的更多相关文章

  1. How to Use Postman to Manage and Execute Your APIs

    How to Use Postman to Manage and Execute Your APIs Postman is convenient for executing APIs because ...

  2. SpringBoot应用的集成测试

    一.概念和定义 进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试.集成测试.接口测试)可以保证系统的可维护性,当我们修改了某些代码时 ...

  3. Spring Boot应用的测试——Mockito

    Spring Boot应用的测试——Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring ...

  4. Spring Boot项目中使用Mockito

    本文首发于个人网站:Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试 ...

  5. 学习python须知,Python基础进阶需掌握哪些知识点?

    Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...

  6. httpie 取代 curl

    接口测试有人喜欢postman(for windows or mac) 如果长期用linux工作,可能更喜欢命令的方式,比如curl最近深入了解了下django-rest-framwork,他们推荐了 ...

  7. (转载)构建public APIs与CORS

    from: https://segmentfault.com/a/1190000000709909 理由:在操作层面详细的讲解了跨域的操作.尤其是对于option请求的详解.收藏. 在构建Public ...

  8. WebAPI生成可导入到PostMan的数据

    一.前言 现在使用WebAPI来作为实现企业服务化的需求非常常见,不可否认它也是很便于使用的,基于注释可以生成对应的帮助文档(Microsoft.AspNet.WebApi.HelpPage),但是比 ...

  9. cURL和HTTPie

    http://lingxiankong.github.io/blog/2014/08/19/curl-httpie/ 前两天在网上看到一个号称比cURL更牛逼的命令行工具HTTPie,提供命令行交互方 ...

随机推荐

  1. webpack 打包时到底如何组织js

    问题一:引入前端库,方法也是不一样的 比如 lodash.js ,作为一个 chunk 用 html-webpack-plugin 打包到页面里,会生成一个全局变量 window._ ,在其它 js ...

  2. [GraphQL] Use GraphQL's Object Type for Basic Types

    We can create the most basic components of our GraphQL Schema using GraphQL's Object Types. These ty ...

  3. LeetCode:5_Longest Palindromic Substring | 最长的回文子串 | Medium

    题目: Given a , and there exists one unique longest palindromic substring. 解题思路:1.简单思路:暴力破解法,时间复杂度O(n^ ...

  4. 『Golang』跨平台TUI(基于文字的用户界面)库Terbox-Go文档翻译

    原文 package termbox import "github.com/nsf/termbox-go" termbox-go 是一个用于创建跨平台TUI(基于文本的用户界面)的 ...

  5. [Android Studio 权威教程]断点调试和高级调试

    好了开始写一个简单的调试程序,我们先来一个for循环 ? 1 2 3 4 5 6 7 8 <code class="language-java hljs ">for ( ...

  6. 我的第一个Socket程序-SuperSocket使用入门(三)

    本来博客都停了,不打算更了,但今天百度一个socket的问题时无意间发现第一篇的socket文章权重仅次于SuperSocket网站,顿时觉得自己6到不行,再写一篇,讨论下数据持久化的问题 去年搞那个 ...

  7. Redis配置以及通过C#访问小试

    首先安装一个Ubuntu14.04的虚拟机用来安装Redis.Ubuntu的Unity在虚拟机里面卡爆了,可以通过如下方法安装传统的Gnome界面: sudo aptitude install gno ...

  8. css hack 整理

    <ul> <li>"_" ------ IE6</li> <li>"-" ------ IE6</li&g ...

  9. 使用JavaScript判断用户是否为手机设备

    最近在做微信服务号开发,其中遇到一个问题是微信服务号查看的个人的消息,如果点击在浏览器中查看(iOS中是在Safari中打开)应该是跳转到登录页面,因为页面需要从后台获取,因为需要服务端判断,如果是存 ...

  10. windows下远程连接ubantu

    要实现windows下连接ubantu需要安装以下软件: 1. windows下安装winSCP 2. Ubantu下安装OpenSSH Server 可以使用命令行安装openSSH Server: ...