永远不要停止前进的脚步,就像你不会忘记以前那些窘迫的连一无所有都称不上的裸露的记忆一样。追求永远的打怪升级,武装自己。双手的努力让曾经那些不堪的记忆在时间的长河中渐渐风化隐匿,但请不要忘记它留下的那一丝丝痕迹,时刻提醒自己,生活不止眼前这点不值一提的安逸,你还需要努力,谨记武装自己,在能力上,更在心灵上。
生活不止眼前的苟且,还有诗和远方。看到过小米CEO雷军说的一句话,“你写代码有写诗的感觉吗?没有就转行吧。”好吧,为了让自己写代码有写诗的感觉,现在学习学习本地服务器 API的搭建吧。
一、基本配置
1、下载jar包:新建一个文件夹,将下载好的jar包更名之后拖拽到改文件夹下(jar包名字太长,使用命令行时看着难受);
2、新建request文件夹,用于存放请求的json文件;新建response文件夹用于存放响应的json文件。
3、新建Configs.json文件,这个文件用于配置api,里面引用需要配置到服务器的请求文件。
完成之后,我的文件框架如下:(Readme.md用于存放一下使用注意项,可有可无)
![](https://i-blog.csdnimg.cn/blog_migrate/c9e5c5ee16eee7a6fe9fb8c48319e98f.png)
4、使用:(当然这里还没有具体配置json文本,稍后奉上代码)
终端:
1、cd /Users/sunjianfei/iOS开发/Local\ Server\ -\ Api //jar包所在文件夹 2、java -jar moco-0.11.0.jar start -p 8080 -g Configs.json
终端显示如下信息,服务开启成功:
![](https://i-blog.csdnimg.cn/blog_migrate/4e46e4696d75179552ba0e0799b4661b.png)
二、POST,GET请求示例
1、 request中我新建了两个json文件,分别如下:
postTest.json:
View Code
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
[ //验证成功 { "request":{ "method" :"post", "uri":"/postMethod", "headers":{ "content-type":"application/json" }, "json":{ "name" :"zhangsan", "password" :"123456" } }, "response":{ "file":"response/post/postTest_response.json" } }, //验证失败(参数错误或者没有参数) { "request":{ "method" :"post", "uri":"/postMethod" }, "response":{ "text":"default" } } ]
getTest.json:
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
[ //验证成功 { "request":{ "method" :"get", "uri":"/getTest", "queries":{ "param1":"1", "param2":"2"} }, "response":{"file":"response/get/getTest_suc_response.json"} }, //验证失败 { "request":{ "method" :"get", "uri":"/getTest"}, "response":{ "file":"response/get/getTest_fail_response.json"} } ]
2、配置Configs.json
[
{ "include": "request/getTest.json" },
{ "include": "request/postTest.json" },
]
3、response文件夹下新建需要返回的错误信息的json文件,json文件名和需要返回的文件名称对应,json如下:(根据需求,可以随意更改的)
[
{
"status":"fail",
"status_code":"001",
"error_message":"信息错误",
"data":{}
}
]
4、按照上面的方法启动服务器,我是在Paw和模拟器真机上测试过,Paw请求如下:
![](https://i-blog.csdnimg.cn/blog_migrate/d37d76c8aa9fd192e612003b20e7e5df.png)
三、使用注意
1、headers为application/json类型,后面是一个json "headers":{ "content-type":"application/json" }, "json":{ "name" :"zhangsan", "password" :"123456" } 2、headers为application/x-www-form-urlencoded类型,后面是一个forms "headers":{ "content-type":"application/x-www-form-urlencoded" }, "forms":{ "name" :"zhangsan", "password" :"123456" } 3、request 请求 有14个固定的属性: method,headers,json,factory,uri,text,cookies,xpaths, json_paths,version,file,queries,path_resource,forms。 一定要遵循这些方法。 常用的method(请求方式),headers(heads参数),uri(url地址),file(指定调用的请求文件),queries(请求带参),forms(表单内容)。 4、response 响应 有12个固定属性: status,attachment,headers,version,factory,file,text,proxy,cookies,json,latency,path_resource。 5、延迟 "response":{ "latency":{"duration": 1,"unit": "second"}, "file":"login/login_fail_response.json" }
详细Demo地址:GitHub
参考文档: