开发工具使用那些事

教程: 如何使用RestBird

2019-08-05  本文已影响0人  洛的俠

转自:
[http://api200.com/tutorial/tutorial.html#setup-for-the-tutorial]

简介

本教程是RestBird的快速使用教程,更详细的功能介绍请参考文档。

教程分为如下几个部分:

不必须阅读每一个章节,选择你感兴趣的去阅读

安装手册

安装包括Docker安装和RestBird的安装两部分:

安装 Docker

Docker 作为当下最流行的应用发布方式,已经被Linux,Windows,MacOS广泛支持。
请参考Docker官方文档来进行 Docker安装

下载安装RestBird的Docker镜像

当Docker安装好,就可以使用Docker命令,从 Docker集市下载安装RestBird的Dcoker镜像:

# 从Dcoker集市下载安装RestBird
$ sudo docker pull restbird/rest

对于中国用户,请在执行上述docker pull命令之前务必添加一个docker加速镜像仓库来提高docker image 下载速度:

sudo echo "DOCKER_OPTS=\"--registry-mirror=http://hub-mirror.c.163.com\"" >> /etc/default/docker

创建工程并运行RestBird

在完成上述两步后,就可以运行RestBird的容器了:

首先, 在任意你喜欢的地方创建一个目录,用于存放工程文件:

工程文件目录可以在任何位置, 以’/var/my-first-project’为例:

$mkdir /var/my-first-project
$ls /var/my-first-project

其次, 运行RestBird的Docker容器,并将刚才创建的工程目录映射给这个容器:

# 方式1:将容器运行在当前host的同一个网络上(这是推荐的最简单运行方式, 只有linux支持):
sudo docker run -ti --user $(id -u):$(id -g) --net host  -v /var/my-first-project:/data/restbird restbird/rest

# 方式2:将容器运行在一个隔离的网络里边,这里需要将本地网络的一个端口映射到容器的8080端口,以便于访问容器
sudo docker run  -ti --user $(id -u):$(id -g) -p 8080:8080 -v /var/my-first-project:/data/restbird restbird/rest

无论是方式1或这方式2启动容器后,现在就可以通过浏览器来访问RestBird的Web界面了: http://localhost:8080/ .

提示

将容器直接运行在Host同一个网络里 (方式1), 拥有很多的使用便利。因为是运行在同一个网络,所有,不需要做端口映射,这在做服务器模拟和API录制的时候非常便利,当然作为Docker的高级使用者,你可以随时使用那种方式都没有问题。

RestBird Login

RestBird 页面的默认用户名,密码是: admin/admin. 第一次登录之后,建议修改,并创建其他用户。

RestBird Login

如果你将Docker安装运行在一个服务器上或者你想让别人访问你本地启动的RestBird容器, 你可以直接使用服务器或你本地机器的IP就可以了,例如http://{host-ip-address}:8080/, 这里 {host-ip-address} 指的是你机器的IP地址。

提示

RestBird是标准的Docker容器,你可以阅读Docker的官方文档了解更多的Docker的操作,譬如如何进行端口映射和目录映射。

Rest Api 测试

现在我们可以开始Rest API的测试了

创建一个Project 和 Case

  1. 登录RestBird的Web页面,切换到”Rest Project” 菜单, 点击 ”+ New” 按钮

RestBird Login
  1. 创建一个工程目录 (test)

RestBird Dir
  1. 创建一个工程用例 (hello-google) 在刚才创建的工程目录下边

RestBird Case

用例创建好了:

RestBird Case

在创建用例的时候,我们支持选择编程语言来完成更高级的工作 : Python 或者 Golang。这个实例,我们选择Golang作为高级编程语言,后续会选择Python。

添加一个API请求

在测试用例’hello-google’ 下添加一个API请求,并进行测试:

  1. 在测试用例 “hello-google”下,点击 ”+ New” 按钮来添加一个API请求。

RestBird Login
  1. 点击这个API可以看到API的详细信息,添加修改各个项目来完成这个API的创建

RestBird Login

Restbird Prerequest

Restbird Prerequest

执行API请求

可以在两个地方去执行一条创建的API

  1. 在API详情表单里边, 点击”Run Test”按钮,可以执行执行这条API,这个一般用于API的开发阶段,用于调试.

RestBird Login
  1. 选择需要执行的API,点击”Run Selected” 按钮可以执行一组API.

RestBird Login

查看API运行历史信息

无论是”Run Test”去执行某一条API,还是”Run Select”去执行一组API, 每一次的执行都会生条一条历史记录,这个记录里边记录了API的请求和回复详细信息.

RestBird Login

构建API时可以使用变量功能

RestBird构建API支持强大的变量功能,他可以用来构建动态的API,以及减少很多重复信息的输入

API的录制与回放

下面介绍录制与回放功能

创建一个工程用例

  1. 登录到RestBird页面,切换到”Recording” 菜单,点击”+ New”按钮

RestBird Login
  1. 创建一个工程目录 (test)

RestBird Dir
  1. 创建一个用例(github)

RestBird Case

现在用例 ‘github’ 创建好了

设置录制器

录制用例创建好了后,我们需要舒服一个目标域名URL和代理端口来开启我们的录制工作,无比在启动录制之前,完成设置工作:

Recorder setting

这里我们以录制 https://github.com为例,录制代理端口设置为8889.

Recorder setting

提示

Restbird 的录制工作是通过反向代理来实现的,你可以参阅文档相关章节了解他的原理

开始录制

在设置完成后,点击”Start”按钮就可以开始录制了。RestBird容器启动的时候,如果是直接启动在Host的网络上(—net host)上,我就可以i直接访问刚才设置的代理端口,就可以开始录制了。如果RestBird容器没有启动在Host网络上,则需要把刚才说到代理端口映射到Host上,才可以访问:

  1. 映射代理端口到Host上任何一个可用端口(仅在方式2启动容器时需要)
sudo docker run    -ti    -p 8080:8080 -p 8089:8089   -v /var/my-first-project:/data/restbird    restbird/rest
  1. 点击 “start” 按钮,访问代理URL

    Recorder setting
  2. 通过访问代理的URL来进行录制

Recorder setting
  1. 点击”refresh” 按钮,爽新录制到的最新的API. 点击具体的API可以看到API的请求与回复的详细信息

Recorder setting

拷贝录制到的API到测试工程或者服务器模式工程

录制到的API可以拷贝到测试i工程来进行进一步的测试,也可以拷贝到服务器模拟工程来模拟API的回复。 更多信息可以参考文档相关章节

服务器模拟

服务器模拟经常在Web开发过程中,用来接耦合前后端的开发:

创建服务器模拟工程用例

  1. 登录RestBird网页,切换到 “Mock Server” 菜单,点击 ”+ New” 按钮

Mock Server tab
  1. 创建一个服务器模拟工程 (test)

RestBird Dir
  1. 创建一个服务器模拟工程用例

RestBird Case

创建用例时,我们可以选择多种编程语言来完成高级的工作。这里我们以选择’Javascript’ 作为编程语言为例

模拟服务器设置

模拟服务器创建后,我们需要设置这个模拟服务器需要监听在哪个端口上以接收http请求, 点击”setting” 按钮完成设置.

Mock Server setting

这里我们以设置监听端口为8088为例:

mock setting

提示

Restbird 模拟服务器支持三种编程语言: Java Script(基于nodejs express), Python, 和 golang, 更多详情参见文档。

添加模拟API

在 ‘hello’ 用例创建好后, 我们就可以给他添加模拟API了

  1. 点击”+ New” 按钮添加一个模拟API

RestBird Login
  1. 点击API可以看到这个API的详情, 支持两种方式来进行回复(simple response 或者 advanced response)

RestBird Login

RestBird Login

Restbird Prerequest

运行模拟服务器

在添加完模拟API后,点击 “Start” 按钮就可以启动一个模拟服务器。如果RestBird容器是按照方式2启动的(非Host网络),我们则需要将模拟服务器的监听端口首先映射到Host上,才可以访问这个模拟服务器。

  1. 映射模拟服务器端口(只在方式2启动容器时需要):
sudo docker run    -ti    -p 8080:8080 -p 8088:8088   -v /var/my-first-project:/data/restbird    restbird/rest
  1. 访问模拟API,例如 ’http://localhost:8088/helloworld

mock api

模拟服务的数据状态存储(DB)

我们时常需要在模拟服务器上存储数据状态,来被多条API或者请求间贡献这些数据,RestBird可以在”advanced request handling” 模式下,通过编程方式支持:

mock api

这是一段代状态操作的代码实例:

function HandleRequest(req, res, state) {

    var statecount = state.get("counter");

    if (statecount) {
        statecount.count  = statecount.count + 1;
        state.save("counter", statecount);
    } else {
        statecount = {
            count: 1
        };
        state.save("counter", statecount);
    }

    res.send('hello, I am advanced Request handler:'+ statecount.count);
}

module.exports = HandleRequest

任务

RestBird提供任务编程,这是非常灵活的一部分。所谓任务就是一段完整的程序,你可以i在这里边做你想做的任何事情,譬如发送邮件,定时执行API,设置定时器等等。

创建任务

待完善 …

运行任务

待完善 …

版本控制与项目文件管理

RestBird的所有项目工程文件,都存放在Host机器上,然后映射方式与RestBird容器共享。我们可以i通过任何的文档编辑器来直接编辑这些项目文件,更可以通过git,svn等版本管理工具来管理项目文件。这位团队合作和API的管理带来了无与比拟的便利。

下面是我们这个教程的工程文件的一个组织实例:

$cd /var/my-first-project
$tree .
├── library                      # 所有 golang的第三方库 
├── libraryPy                    # 所有 python的第三方库
├── libraryJs                    # 所有 javascript的第三方库
├── projects
│   ├── examples                 # golang/python/javascripts 的编程实例
│   ├── mock                     # 所有模拟服务器的文件存在该目录下边
│   │   └── test
│   │       └── hello            # 一个模拟服务器的实例
│   │           ├── api0         # 一个模拟服务器的API的定义
│   │           │   ├── mock.js
│   │           │   ├── req.json
│   │           │   └── res.body
│   │           ├── api1         
│   │           │   ├── mock.js
│   │           │   ├── req.json
│   │           │   └── res.body
│   │           ├── mock.json
│   │           ├── mocktask.js
│   │           └── type.json
│   ├── record                 # 所有录制工程实例存在该目录下边
│   │   └── test
│   │       └── github
│   │           ├── record.json
│   │           └── type.json
│   ├── rest                  # 所有测试工程实例存在该目录下边
│   │   └── test
│   │       └── hello-google
│   │           ├── api0     # 测试工程的一条API定义     
│   │           │   ├── prerequest.go
│   │           │   ├── req.body
│   │           │   ├── req.json
│   │           │   └── resval.go
│   │           ├── api1
│   │           │   ├── prerequest.go
│   │           │   ├── req.json
│   │           │   └── resval.go
│   │           ├── api2
│   │           │   ├── prerequest.go
│   │           │   ├── req.json
│   │           │   └── resval.go
│   │           └── type.json
│   ├── task             # 所有的任务文件存在这里
│   └── user             # restbird 的用户管理信息
├── state                # 模拟服务器的状态信息存在这里
└── version.json         # 版本信息

git

如果项目文件已经被Git管理起来了,可以轻松的提交你的修改:

$cd your-project-folder
$git add .
$git commit -m "some messages"
$git push

如果没有,那么你需要建立一个git仓库,可以参考 Git文档

svn

待完善 …

上一篇 下一篇

猜你喜欢

热点阅读