永远不要停止前进的脚步,就像你不会忘记以前那些窘迫的连一无所有都称不上的裸露的记忆一样。追求永远的打怪升级,武装自己。双手的努力让曾经那些不堪的记忆在时间的长河中渐渐风化隐匿,但请不要忘记它留下的那一丝丝痕迹,时刻提醒自己,生活不止眼前这点不值一提的安逸,你还需要努力,谨记武装自己,在能力上,更在心灵上。
  生活不止眼前的苟且,还有诗和远方。看到过小米CEO雷军说的一句话,“你写代码有写诗的感觉吗?没有就转行吧。”好吧,为了让自己写代码有写诗的感觉,现在学习学习本地服务器 API的搭建吧。
  其实所谓的API搭建就是,使用Moco服务器的一个jar包,通过简单的json文件实现模拟测试用的API,jar包下载地址 0.11.0  0.10.0
 

 

一、基本配置

    1、下载jar包:新建一个文件夹,将下载好的jar包更名之后拖拽到改文件夹下(jar包名字太长,使用命令行时看着难受);
    2、新建request文件夹,用于存放请求的json文件;新建response文件夹用于存放响应的json文件。
    3、新建Configs.json文件,这个文件用于配置api,里面引用需要配置到服务器的请求文件。
 
    完成之后,我的文件框架如下:(Readme.md用于存放一下使用注意项,可有可无)
 
 
    4、使用:(当然这里还没有具体配置json文本,稍后奉上代码)
    终端:
  

        、cd /Users/sunjianfei/iOS开发/Local\ Server\ -\ Api         //jar包所在文件夹
、java -jar moco-0.11..jar start -p -g Configs.json
    终端显示如下信息,服务开启成功:

二、POST,GET请求示例

 
       1、 request中我新建了两个json文件,分别如下:
            postTest.json:

 [
//验证成功
{ "request":{
"method" :"post",
"uri":"/postMethod",
"headers":{
"content-type":"application/json"
},
"json":{
"name" :"zhangsan",
"password" :""
}
}, "response":{
"file":"response/post/postTest_response.json"
}
},
//验证失败(参数错误或者没有参数)
{
"request":{
"method" :"post",
"uri":"/postMethod"
},
"response":{
"text":"default"
} } ]
            getTest.json:
[
//验证成功
{
"request":{
"method" :"get",
"uri":"/getTest",
"queries":{ "param1":"", "param2":""} }, "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请求如下:
 
 

三、使用注意

   

、headers为application/json类型,后面是一个json
"headers":{
"content-type":"application/json"
},
"json":{
"name" :"zhangsan",
"password" :""
} 、headers为application/x-www-form-urlencoded类型,后面是一个forms
"headers":{
"content-type":"application/x-www-form-urlencoded"
},
"forms":{
"name" :"zhangsan",
"password" :""
} 、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(表单内容)。 、response 响应 有12个固定属性: status,attachment,headers,version,factory,file,text,proxy,cookies,json,latency,path_resource。 、延迟
"response":{
"latency":{"duration": ,"unit": "second"},
"file":"login/login_fail_response.json"
}
 
详细Demo地址:GitHub
参考文档:
                    干货系列之零基础搭建自测服务器

Moco服务器jar包实现简易的API搭建的更多相关文章

  1. 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池

     DBCP数据源 使用DBCP数据源,需要导入两个jar包 Commons-dbcp.jar:连接池的实现 Common-pool.jar:连接池实现的依赖库. 导入mysql的jar包. DBC ...

  2. spring的jar包以及相关的API文档的下载方式

    转自:http://blog.csdn.net/yuexianchang/article/details/53583327 侵删 感谢原创 首先是进入官网:https://spring.io/ 如图所 ...

  3. maven 执行本地、服务器 jar包安装

    开发时遇到过第三方jar包依赖不了时的尴尬 因为遇到过几次所以记录一下,POM文件引入的个推jar包无效,就必须本地安装了,服务器上的也是一样,执行相同的maven命令就行,注意修改路径!和将jar包 ...

  4. Idea导出jar包和使用自定义API

    自定义jar简单实现案例 学习内容 1. 自定义工具类 2. 导出jar 3. 加载Jar包 4. 调用自定义的API方法 总结 学习内容 1. 自定义工具类 新建一个java项目,然后创建包和工具类 ...

  5. Gradle连接Maven仓库直接从仓库 更新JAR包

    一般情况下服务器编写好服务程序  会用Maven打成JAR包,放在Maven仓库里管理,我们在用的时候直接引用就可以, 那么如何在Gradle项目中使用本地的  或者远程的Maven仓库呢    当M ...

  6. Java开发中常用jar包整理及使用

    本文整理了我自己在Java开发中常用的jar包以及常用的API记录. <!-- https://mvnrepository.com/artifact/org.apache.commons/com ...

  7. mybatis 配置--->确认jar包是否正确

    mybatis 配置之前,首先要确保服务器jar包是否成功 配置jar包如下添加mybaties-3.5.2. jar, maven 的 pom.xml 配置如下,查看配置是否成功见 如上分类 Mav ...

  8. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  9. maven依赖jar包更新,业务jar需同步更新(业务jar依赖API)

    背景: 环境出现问题,定位为依赖jar缺失,修改工程pom文件补充依赖jar. 更新要点说明: 依赖jar,更新提交 业务jar,也需更新提交:maven构建会把依赖jar引用进去,更新环境如果单独更 ...

随机推荐

  1. 20155326刘美岑 《网络对抗》Exp1 PC平台逆向破解

    20155326刘美岑 <网络对抗>逆向及Bof基础实践 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...

  2. hdu 1069 Monkey and Banana 【动态规划】

    题目 题意:研究人员要测试猴子的IQ,将香蕉挂到一定高度,给猴子一些不同大小的箱子,箱子数量不限,让猩猩通过叠长方体来够到香蕉. 现在给你N种长方体, 要求:位于上面的长方体的长和宽  要小于  下面 ...

  3. req、js

    requests库中,可不写为headers内各键值对的部分参数:   s=requests.Session()  #或.session() s.allow_redirects=False #禁止重定 ...

  4. 【牛客网71E】 组一组(差分约束,拆位)

    传送门 NowCoder Solution 考虑一下看到这种区间或与区间与的关系,拆一下位. 令\(s_i\)表示前缀和,则: 那么如果现在考虑到了第\(i\)为,有如下4种可能: \(opt=1\) ...

  5. 项目Alpha冲刺(团队2/10)

    项目Alpha冲刺(团队2/10) 团队名称: 云打印 作业要求: 项目Alpha冲刺(团队) 作业目标: 完成项目Alpha版本 团队队员 队员学号 队员姓名 个人博客地址 备注 221600412 ...

  6. Android精通教程-第一节Android入门简介

    前言 大家好,给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease to be ...

  7. iptables概述

    [参考文章]:iptables详解-朱双印个人日志 [参考文章]:linux iptables详解--个人笔记 [参考文章]:iptables详解--转 [参考文章]:linux下IPTABLES配置 ...

  8. iOS-关于缓存【SDImageCache】Image,一直刷新UIImageView内存一直增加问题

    最近做的一个项目,里面有这样一个需求,在一个页面,用一个UIImageView不停的刷新显示图片,图片可能会重复显示:图片是从服务器下载下来的data流,data转UIimage系统的方法: UIIm ...

  9. logstash grok 内置正则

    参考地址:https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns USERNAME [a-zA-Z0-9._-]+ ...

  10. dart之旅(三)- list

    list, 在 js 中被称为数组, 但是和 js 中的数组还是有不少不同的地方,我们来看一个例子: // 声明一个长度不可变的 list List<int> fixedLengthLis ...