android 使用Mock Server 搭建假数据服务器

android 测试

Mock相关

本mock及配置的 github地址

〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰我是分隔线〰〰〰〰〰〰〰〰〰 〰〰〰〰〰〰〰〰〰〰〰〰〰〰

✅ mock server的搭建

作用: 提供mock假数据,便于开发效率,总不能等别人全部写好吧;

  • 首先安装nodejs的环境 (安装环境)

流程: homebrew -> node

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install node


  • 选择json server (搭建server) json server github地址

josn server 可以选择一个文件来执行json数据,提供假数据服务器,如db.json;

//可自定义配置端口等,看官网即可;
npm install -g json-server (安装)
json-server --watch db.json  

推荐选择基于Api-Blueprint的drakov 来搭建假数据服务器drakov github地址

提供易于查看和修改的api,这个比较好;

//可自定义配置,建议看github中的栗子;
npm install -g drakov (安装)
drakov -f ./hello.md(文件路径) -p 3000(端口号)
推荐自定义脚本`mockdrakov.sh`使用配置文件启动(mac或linux下用.sh shell脚本,window下用.bat批处理文件启动)
drakov --config config.js
  • 基于Api-Blueprint的可以将md文件转换为html文件,更好的展示,使用aglio工具Api-Blueprint server
命令也简单,input,output
npm install -g aglio (安装)
aglio -i foo.md -o bar.html

  • 简介API-Blueprint的规则;

    Api-Blueprint的介绍

    Api-Blueprint github 地址

其实一旦drakov+mockdrakov.sh+config+api目录md文件结构的测试服务器搭建成功后,就不用管了,重点在于编写 基于API-PRINCPLE的md文件了;

〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰我是分隔线〰〰〰〰〰〰〰〰〰 〰〰〰〰〰〰〰〰〰〰〰〰〰〰

**API Blueprint**

Metadata

FORMAT: 1A 开头,决定了api blueprint的版本;

API Name & Description

一个或多个#作为api的名称和描述,#的数量表示标题的级别level;

FORMAT: 1A

# Polls 

Polls is a simple API allowing consumers to view polls and vote in them.

Resource Groups

api资源的文档编写,使用Group关键字可创建相关资源的组;

# Group Questions

Resources related to questions in the API.

Resource

Questions资源组中,创建个资源组名称叫Question Collection,这个资源允许你展示一个接口列表,使用标题结尾的中括号的uri(统一资源标志符)表示资源;

## Question Collection [/questions]

Actions

使用在资源中的后面跟随Http method的子标题名称,指定每个资源中的action;

### List All Questions [GET]

一个action应该包括至少一个server的响应,该响应必须包括一个状态码和可能有的响应体信息; 在action中可定义一个list,list被使用一个+,*,-的预先定义好的list创建;

+ Response 200 (application/json)
    {json 数据}

需要注意的几个点

Group 关键字的用法,可以在生成可视化html的时候分组查看;

换行json的时候,tab键不要用,不支持\t的tab键,用空格即可;

Parameters的用法: 即添加参数的名称和说明以及默认值;可添加多个参数也没关系;

Response中常用的下层节点:Headers,Attributes,Body;

Attributes 的用法: 在没有Body的情况下,Attributes属性可生成响应json数据;

Data Structures: 中可定义Attrbutes中公用数据;

最后的数据是Data Structures中的属性和当前Attrbutes中的属性总和; 引用方式:

+ Attributes (Coupon Base)

返回数据的共享: 直接定义+ Model (application/vnd.siren+json) 表示返回的格式,引用方式:

直接引用resource名称

## Demos resp_mode [/addmode]

+ Model (application/vnd.siren+json)

    This is the application/vnd.siren+json message resource representation.

    + Body

  {
    "class": [ "message" ],
    "properties": {
          "message": "Hello World!"
    },
    "links": [
          { "rel": "self" , "href": "/message" }
    ]
  }

---

## Demos resp_add_content  [/addcontent]
### 添加内容 [GET]
+ Parameters

    limit (number, optional) - The maximum number of results to return.
        Default: 20

+ Response 200 (application/json)

    [Demos resp_mode][]

请求参数的添加: 直接在定义的url处加{}即可

## Demos resp_change_content [/changecontent{?status,property}]
### 添加参数 [GET]
+ Parameters

    status (number, optional) 
    property(string)
    
+ Response 200 (application/json)

    [Demos resp_mode][]

直接调用mock server的接口:
android 使用Mock Server 搭建假数据服务器_第1张图片

用aglio 工具转化为html效果为:
android 使用Mock Server 搭建假数据服务器_第2张图片

更多用法例子参见API Blueprint example

〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰我是分隔线〰〰〰〰〰〰〰〰〰 〰〰〰〰〰〰〰〰〰〰〰〰〰〰

ps: 注意api blueprint 中不支持'\t','\r'; 所以比较坑的是windows电脑换行符为’\r\n’,凉凉,不支持,所有用mac或者linux系统做mock服务器吧;

你可能感兴趣的:(mock,data)