本mock及配置的 github地址
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰我是分隔线〰〰〰〰〰〰〰〰〰 〰〰〰〰〰〰〰〰〰〰〰〰〰〰
✅ mock server的搭建作用: 提供mock假数据,便于开发效率,总不能等别人全部写好吧;
流程: homebrew -> node
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install node
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
的规则;其实一旦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][]
更多用法例子参见API Blueprint example
〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰〰我是分隔线〰〰〰〰〰〰〰〰〰 〰〰〰〰〰〰〰〰〰〰〰〰〰〰
ps: 注意api blueprint 中不支持'\t','\r'
; 所以比较坑的是windows电脑换行符为’\r\n’,凉凉,不支持,所有用mac或者linux系统做mock服务器吧;