POSTMAN and HTTPie to test APIs
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/resourcecombo 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的更多相关文章
- 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 ...
- SpringBoot应用的集成测试
一.概念和定义 进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试.集成测试.接口测试)可以保证系统的可维护性,当我们修改了某些代码时 ...
- Spring Boot应用的测试——Mockito
Spring Boot应用的测试——Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring ...
- Spring Boot项目中使用Mockito
本文首发于个人网站:Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试 ...
- 学习python须知,Python基础进阶需掌握哪些知识点?
Python基础进阶需要掌握哪些知识点?Python将是每个程序员的标配,有编程基础再掌握Python语言对于日后的升职加薪更有利.Python语言简洁利于理解,语法上相对容易能够让开发者更专注于业务 ...
- httpie 取代 curl
接口测试有人喜欢postman(for windows or mac) 如果长期用linux工作,可能更喜欢命令的方式,比如curl最近深入了解了下django-rest-framwork,他们推荐了 ...
- (转载)构建public APIs与CORS
from: https://segmentfault.com/a/1190000000709909 理由:在操作层面详细的讲解了跨域的操作.尤其是对于option请求的详解.收藏. 在构建Public ...
- WebAPI生成可导入到PostMan的数据
一.前言 现在使用WebAPI来作为实现企业服务化的需求非常常见,不可否认它也是很便于使用的,基于注释可以生成对应的帮助文档(Microsoft.AspNet.WebApi.HelpPage),但是比 ...
- cURL和HTTPie
http://lingxiankong.github.io/blog/2014/08/19/curl-httpie/ 前两天在网上看到一个号称比cURL更牛逼的命令行工具HTTPie,提供命令行交互方 ...
随机推荐
- ASP.NET 4.0 potentially dangerous Request.Form value was detected
A few days ago, while working on an ASP.NET 4.0 Web project, I got an issue. The issue was, when use ...
- denyhost防止SSH暴力破解
参考: http://blog.sina.com.cn/s/blog_593af2a70102vjnf.html denyhost 官网: http://denyhosts.sourceforge.n ...
- C#实现IDispose接口
.net的GC机制有两个问题:首先GC并不能释放所有资源,它更不能释放非托管资源.其次,GC也不是实时的,所有GC存在不确定性.为了解决这个问题donet提供了析构函数 public class Te ...
- SAP S4 Finance6个支持企业实时财务管理的主要创新领域
本文将讲述下 SAP Simple Finance里面6个支持企业实时财务管理的主要创新领域. Simple Finance 在以下几个方面具有自己独特的优势: ● 更加简洁的用户体验,可以让用户在任 ...
- CSS-JQUERY笔记
Ready $(document).ready(function(){ }) Input_div_span Input-长度限制 <input maxLength="2"&g ...
- Raft论文的一些问题
抛些问题出来,真正解释了这些问题才算理解了论文.:) 1. 什么是复制状态机 2. Raft vs Paxos 3. Raft的设计目标understandability,为达到设计目标在做设计时如何 ...
- LeetCode:5_Longest Palindromic Substring | 最长的回文子串 | Medium
题目: Given a , and there exists one unique longest palindromic substring. 解题思路:1.简单思路:暴力破解法,时间复杂度O(n^ ...
- 最近买了个kindle,为了方便阅读,写了个程序抓取网页内容发送到Kindle
主要觉得往kindle里加书籍太麻烦了,要下载下来,还要通过邮件发送,特别一些网页文字版的书籍没办法放到kindle里,所以想着还不如自己动手丰衣足食,写一个程序直接抓取网页内容,制作成书籍,然后自动 ...
- 近期Windows 10 RedStone 2 Insider版本安装进度停留在百分之23、24解决方案
近期安装Windows 10 RedStone 2的14965.14971会出现停留在23%或者24%的现象,解决办法是拔掉扩展的SD卡再重新安装.
- VB6.0手册
1.Form窗体事件 Private Sub Form_Activate() '焦点在此窗口时触发 MsgBox "窗体的Activate事件" End Sub Priv ...