有了webapi,对应的,也就要有各种语言的sdk,有时候,还要有一个好用的api测试工具。sdk和api测试工具在功能上有一些异同,有时候测试工具会直接基于sdk来制作。

它们通常包含:

1、http通信底层功能封装
有些语言或系统,本身http的库不够好,所以会用一些第三方库。c++一般用curl,java(android)可能用Volley。在这之上,通常再封装出一个HttpClient,提供同步异步的GET和POST功能。

2、OAuth功能
有些帐号关联的sdk,会提供OAuth的封装。

3、api相关逻辑
通常包括api的URI、Model、Serialization,可能还包含一些常量表,譬如错误码转换文本等。

4、业务逻辑
有些功能,可能仅靠一个api调用是不能完成的,譬如在获取文章id列表需要再继续获取id对应文章内容。有时候sdk还会自己集成上报、界面等内容。

5、辅助功能
可能在调用某些api时,有位操作、md5加密、枚举转数字等需求。也有一些api可能返回地址、ip、城市编号等信息,需要做一些转换来方便展示。

6、UI
api测试工具自然需要一个好的界面,CUI实在是不好用(批量测试倒是用得着),一个酷炫好用又跨平台的GUI,绝对能让用的人心荡神怡。

因为目前的工作中心主要是api这块,而现在也找不到一个好用的api测试工具,所以在这里,给自己先订个目标:写一个好用的api测试工具。
几点考虑:
1、要同时考虑windows、mac、linux,所以打算用c#来实现,使用winform来做界面
2、做好分层分模块,支持插件化,以便将来支持别的api的测试
3、当然,如果真要做到很好,也是一个大坑了,所以会从简到繁慢慢改进的做

几个现有的api测试工具:
API调试工具_API Store
http://apistore.baidu.com/astore/toolshttpproxy
在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具 - aTool在线工具
http://www.atool.org/httptest.php
API测试工具
http://open.weibo.com/tools/console
API测试利器postMan 使用教程 - Alanblog - 博客园
http://www.cnblogs.com/alanjl/p/5490922.html
C#进阶系列——WebApi 接口测试工具:WebApiTestClient - 懒得安分 - 博客园
http://www.cnblogs.com/landeanfen/p/5210356.html

后端程序员之路 30、webapi测试工具的一点想法的更多相关文章

  1. 后端程序员之路 16、信息熵 、决策树、ID3

    信息论的熵 - guisu,程序人生. 逆水行舟,不进则退. - 博客频道 - CSDN.NEThttp://blog.csdn.net/hguisu/article/details/27305435 ...

  2. 后端程序员之路 59、go uiprogress

    gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/g ...

  3. 后端程序员之路 43、Redis list

    Redis数据类型之LIST类型 - Web程序猿 - 博客频道 - CSDN.NEThttp://blog.csdn.net/thinkercode/article/details/46565051 ...

  4. 后端程序员之路 42、Semaphore

    前面学习了Pthreads,了解了线程和线程同步,而同步这个东西,与信号量是密不可分的.下面讨论的主要是Pthreads里的semaphore.h,而不是sys/sem.h [Linux]线程同步之信 ...

  5. 后端程序员之路 23、一个c++的api framework

    在"21.一个cgi的c++封装"中,我们封装了cgi,在这之上,我们可以再来封装一个webapi的framework.当然,前文的Casablanca是个不错的选择,但是它比较庞 ...

  6. 后端程序员之路 22、RESTful API

    理解RESTful架构 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/09/restful.html RESTful API 设计指南 - 阮一峰的网络日 ...

  7. 后端程序员之路 13、使用KNN进行数字识别

    尝试一些用KNN来做数字识别,测试数据来自:MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgesh ...

  8. 后端程序员之路 7、Zookeeper

    Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper ...

  9. 后端程序员之路 4、一种monitor的做法

    record_t包含_sum._count._time_stamp._max._min最基础的一条记录,可以用来记录最大值.最小值.计数.总和metric_t含有RECORD_NUM(6)份recor ...

随机推荐

  1. 2019HDU多校 Round4

    08 K-th Closest Distance 题意:询问区间l,r中与数p的距离为第k大的数 求这个距离 题解:很裸的主席树 二分答案 然后可以用主席数判断在这个区间内 一段值域内出现的数 之前没 ...

  2. 在 Spring Boot 2 中致敬 JSP

    新冠病毒

  3. 如何实现批量上传----------Java解析excel

    一.引子 在web平台开发中仅经常会遇到一下需要批量的问题,通常得做法是使用excel上传,下面主要介绍一下在实际开发中到的实例. 二.准备工作 1.需要导入的jar包(主要用到poi包) (1)po ...

  4. Leetcode(27)-移除元素

    给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  5. C# 类 (5)

    Static 静态成员 创建一个类,实例化它,然后使用实例的各种方法或者属性 然而有时候我们不想实例化这个类,难道我们就没法用他里面的成员了吗?比如计算矩形的面积,就是长*宽,万年不变 当然可以,用s ...

  6. 80行Python代码搞定全国区划代码

    微信搜索:码农StayUp 主页地址:https://gozhuyinglong.github.io 源码分享:https://github.com/gozhuyinglong/blog-demos ...

  7. unity编辑器扩展学习

    扩展编辑器实际上就是在unity菜单栏中添加一些按钮,可以一键执行一些重复性的工作. 一.添加按钮 1.简单使用MenuItem特性 using UnityEngine; using UnityEdi ...

  8. UA 广告 All In One

    UA 广告 All In One UA 广告是什么 广告投放 / 市场营销 互联网营销和分析专用名词速览 http://www.chinawebanalytics.cn/digital-marketi ...

  9. Linux shell script All In One

    Linux shell script All In One refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  10. Windows 常用键盘快捷键:

    键盘快捷键 通过使用键盘快捷键可以节省时间. Windows 和 Mac 的键盘快捷键 在现代操作系统中和计算机软件程序中,键盘快捷键经常被使用. 使用键盘快捷键能帮您节省很多时间. 基本的快捷键 描 ...