LinkedIn对Rest.li框架的首次触电
更新时间:2013/2/22 点击:8545次
inkedIn是世界上访问量最多的网站之一。据保守估计,每个月LinkedIn API调用次数达十亿次级之多。毫不夸张地说,LinkedIn就是API界的亿万富翁。如果你正在寻找基于REST方面的API,那么LinkedIn开源的 Rest.li正是您的最佳选择,一款RESTful服务架构框架。
LinkedIn的高级工程师Joe Betz在博客中 宣布,Rest.li是一个REST+JSON框架,使用动态发现和简单的异步API即可构建健壮可伸缩的服务架构体系。该框架已在LinkedIn得到运用与发展,日趋成熟,满足自身不断发展的需求。其中最主要的是正成为描述可利用资源的标准方式、支持多样化客户端的接入、标准化通用API操作、支持大规模业务和开发人员友好性。
架构图包含:
- R2:一个REST传输层
- D2:一个动态发现和客户端负载均衡层
- Rest.li:一个用于构建REST风格服务的Java框架,它包含了可用于客户端和服务端的Java客户端库。该框架还用指定了一个IDL来描述REST资源。
简单示例
基本上,Rest.li就是一个对数据进行模式定义的框架:
1 2 3 4 5 6 | { "name" : "Greeting" , "namespace" : "com.example.greetings" , "type" : "record" , "fields" : [ { "name" : "message" , "type" : "string" } ] } |
1 2 3 4 5 6 | @RestLiCollection (name = "greetings" ) class GreetingsResource extends CollectionResourceTemplate<Long, Message> { public Greeting get(Long key) { return new Greeting().setMessage( "Good morning!" ); } } |
1 2 | Response response = restClient.sendRequest( new GreetingsBuilders.get().id(1L).build()).get(); System.out.println(response.getEntity().getMessage()); |
总而言之,Rest.li就是一款健壮可伸缩的REST+JSON框架。