crick77 极客 跑步
关注
279 号成员,2013-05-30 19:50:49 加入
2.4k
个人主页 浏览
452
帖子 + 回帖 + 评论
549h45m
在线时长
天行健 男儿当立志
  • 打码时候,你们都听什么歌

    2016-04-14 15:06

    @yangyujiao 听了很多遍,也不知道说了什么 编码的时候根本听不进去

  • 打码时候,你们都听什么歌

    2016-04-14 09:40

    长篇评书 济公传

  • 黑夜给了你黑色的眼睛 你却用它寻找股票

    2016-04-12 19:25

    谢谢提醒 差点忘了兑奖

  • 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-12 13:43

    @yangyujiao 入参第一种 返回第二种 这样比较靠谱

  • restful参数规则讨论

    2016-04-11 22:12

    @88250

    报错是因为 HandlerMethod 没有指定入参类型
    指定之后 因为参数有 @PathVariable 所以报错, 解决方法正在查找

    在思考 是通过 http 请求的方式单元测试 还是通过反射机制

  • restful参数规则讨论

    2016-04-11 21:52

    @88250
    等我调通了把代码放出来, spring 不同版本的差别现在已经这么大了么。。。。

    还想做接口调用次数及 ip 记录 和 可视化的 web 端接口模拟参数调试

    看看我这一个月的通宵能做出来多少吧

  • restful参数规则讨论

    2016-04-11 21:47

    @88250

    • 是分开的, 成功标识是 “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

    @88250

    还是觉得 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

    @88250

    还有一个坑 就是中文签名 iOS 和 android 两种的编码不一样

  • restful参数规则讨论

    2016-04-11 21:21

    @zonghua

    @Controller
    @RequestMapping("/api/{version}/bag")
    public class BagApi extends BaseApiController {
    
    	@Autowired
    	private IBagService bagService;
    
    	@RequestMapping(value={"/add"})
    	
    

    是不是不太好?

  • restful参数规则讨论

    2016-04-11 21:18

    @88250

    返回值

    • 统一返回 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"})

    ??

    合法性这个我再看一遍 不过我说的时间戳的坑 你一般把时间戳校验多长时间,我遇到过太多次 手机时间不准的 ,如果时间校验期限是几天的话 觉得也没有什么意义了

  • 租了个房子

    2016-04-11 20:56

    买房为了结婚 租房为了生活

  • 20160406 午夜俱乐部

    2016-04-06 23:59

    去面试 然后接了个私活 正在通宵 。。。。属于什么水平

  • spring中的id生成器

    2016-04-01 17:42

    @wishao 我觉得 uuid 比自增好

  • 调查问卷:你准备换笔记本了吗?

    2016-04-01 17:23

    @wishao 连连看 还是 斗地主? 感觉笔记本玩游戏不进行。。。 你说的是台式吧

  • 调查问卷:你准备换笔记本了吗?

    2016-04-01 17:22

    @yangyujiao 有钱任性 去年是想学 iOS 开发?

  • 调查问卷:你准备换笔记本了吗?

    2016-04-01 17:22

    @youngski 争取再用 2 年

  • 调查问卷:你准备换笔记本了吗?

    2016-04-01 17:22

    @714593351 可是一天天都是工作

  • 调查问卷:你用的是机械键盘吗

    2016-04-01 09:05

    @88250 我只是博彩之后 没有积分了 终于遇到打赏的 就来回了

  • 调查问卷:你用的是机械键盘吗

    2016-04-01 09:05

    @DevAPI 觉得矮键帽不霸气

  • 调查问卷:你用的是机械键盘吗

    2016-04-01 09:04

    @714593351 不会觉得打字很累吗 容易误按

  • 调查问卷:你用的是机械键盘吗

    2016-04-01 09:02

    我想入手

    cherry G80-3000 白色青轴

    够大 够小霸王

  • 准备做一个 java 的 cms 系统,有什么建议吗

    2016-03-31 11:17

    @mainlove ThreadLocal 额 等我做项目的时候 会尽量更新博客的 如果积分够用的话

  • 准备做一个 java 的 cms 系统,有什么建议吗

    2016-03-31 09:52

    @88250 准备在项目中利用的一些技术 虽然选型方面应该选最适合的 但是 就是想通过这一个项目把接触到的这些技术 都放里面 比如 saas 架构 memcached redis 缓存 mongodb 还有 zookeeper dubbo 分布式

  • 跪求 SaaS 平台 到底是怎么个架构?

    2016-03-22 14:02

    @mainlove 单数据源的话 根据租户标记区分 在 dao 层校验是否包含租户标记

  • 跪求 SaaS 平台 到底是怎么个架构?

    2016-03-22 13:32

    数据库 可以按租户配置啊 每个租户都有一个数据源

    web 服务器就是那一套 什么缓存 集群 分布式 负载均衡 没有什么特殊的

    缓存做多级 主要是更新缓存机制

    spring mvc

  • 父母过生日,大家都送什么?

    2016-03-22 09:11

    @88250 你每年都送一样的 那还有什么意思

    我发现父母对电子产品 和新科技的喜爱和接受程度 比我们想象的要高