-
restful参数规则讨论
2016-04-12 13:46@88250
调通了 之前是 spring3.1 利用 RequestMappingHandlerAdapter 通过反射 测试方法
现在是 3.2.9 通过 MockMvc 模拟方法测试 MockMvc 开头的这几个类 封装的方法不错 够用了 测试用例完善一下 就可以赶赶任务了
测试有时间的话 再写一篇 挺有意思的 4.0 之后的测试更简单public class BagApiTest extends BaseUnitTest { @Autowired private WebApplicationContext wac; private MockMvc mockMvc; @Before public void setup() { this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); } @Test public void addTest() throws Exception { MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.post("/api/1/bag/add.do"); requestBuilder.param("specId", GuidKeyGenerator.getUUIDKey()); ResultActions result = mockMvc.perform(requestBuilder); MvcResult mvc = result.andExpect(MockMvcResultMatchers.status().isOk()) // .andDo(MockMvcResultMatchers.print()) .andReturn(); Map<String, Object> resultMap = mvc.getModelAndView().getModel(); } }
-
restful参数规则讨论
2016-04-11 22:12报错是因为 HandlerMethod 没有指定入参类型
指定之后 因为参数有 @PathVariable 所以报错, 解决方法正在查找在思考 是通过 http 请求的方式单元测试 还是通过反射机制
-
restful参数规则讨论
2016-04-11 21:52@88250
等我调通了把代码放出来, spring 不同版本的差别现在已经这么大了么。。。。还想做接口调用次数及 ip 记录 和 可视化的 web 端接口模拟参数调试
看看我这一个月的通宵能做出来多少吧
-
restful参数规则讨论
2016-04-11 21:47- 是分开的, 成功标识是 “1”or “2” , msg 是信息
- 我现在的想法是用 jedis 作一个模拟的 session 管理,生成 token 把用户信息存起来
-
restful参数规则讨论
2016-04-11 21:45@88250 各种疑问都问了吧
restful 你怎么做单元?
看一下我现在写的? 不知道为什么会报错public class BagApiTest extends BaseUnitTest { @Autowired private BagApi bagApi; @Autowired private RequestMappingHandlerAdapter handlerAdapter; private MockHttpServletRequest request; private MockHttpServletResponse response; @Before public void setUp() { request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); } @Test public void addTest() throws Exception{ request.setRequestURI("/api/1/bag/add.do"); request.setMethod("POST"); Map<String, Object> params = new HashMap<String, Object>(); request.addParameters(params); // 执行URI对应的action ModelAndView mv = handlerAdapter.handle(request, response, new HandlerMethod(bagApi, "add")); Map<String,Object> result = mv.getModel(); System.out.println(result); } }
BaseUnitTest 里加载 app-context.xml 等环境信息 现在报的错误是
java.lang.NoSuchMethodException: wang.crick.jdtc.webservices.bag.BagApi.add()
-
restful参数规则讨论
2016-04-11 21:42还是觉得 bool 不太好,不同语言标准不一样了, 还是 String 最稳妥
版本这个写死我觉得对, 虽然现在是动态的 + enum+switch 但我觉得 动态的话和 params 一样了 没有什么优势
时间戳去掉吧。。。再追问一个,如果前后台分离 我想在 html 里也调用 api,那么 你怎么做这个 app-secret -
restful参数规则讨论
2016-04-11 21:37@zonghua
public ModelAndView add(@PathVariable String version, @Valid BagDomainPo bag, BindingResult result -
restful参数规则讨论
2016-04-11 21:21@Controller @RequestMapping("/api/{version}/bag") public class BagApi extends BaseApiController { @Autowired private IBagService bagService; @RequestMapping(value={"/add"})
是不是不太好?
-
restful参数规则讨论
2016-04-11 21:18返回值
- 统一返回 200 是正确的 可以确认是否连接到接口处理
- code 不建议使用 bool,不推荐 0,因为 int 默认是 0,boolean 有些语言 也会对 0 有默认,所以如果是 int 建议使用 1、2,更推荐 String,没有歧义,最近遇到的一个问题是 int 经过 json 转换之后变成了 double (1 变成了 1.0)
- 是把返回的业务参数和 系统参数(状态 code,描述 message)等放在一个 map 中进行 json 转换,写错了 是 name:"course12"
版本
“服务端版本分明,天然的路由控制” 是说
@RequestMapping(value={"/api/v1/bag/add"})
而不是
@RequestMapping(value={"/api/{versiokn}/bag/add"})
??
合法性这个我再看一遍 不过我说的时间戳的坑 你一般把时间戳校验多长时间,我遇到过太多次 手机时间不准的 ,如果时间校验期限是几天的话 觉得也没有什么意义了
-
准备做一个 java 的 cms 系统,有什么建议吗
2016-03-31 09:52@88250 准备在项目中利用的一些技术 虽然选型方面应该选最适合的 但是 就是想通过这一个项目把接触到的这些技术 都放里面 比如 saas 架构 memcached redis 缓存 mongodb 还有 zookeeper dubbo 分布式
-
跪求 SaaS 平台 到底是怎么个架构?
2016-03-22 13:32数据库 可以按租户配置啊 每个租户都有一个数据源
web 服务器就是那一套 什么缓存 集群 分布式 负载均衡 没有什么特殊的
缓存做多级 主要是更新缓存机制
spring mvc