SlwRest(Super Lightweight Rest)RESTful框架服務端框架小於100K。客戶端簡潔、高效、標準。是對JSR311-API規範進行了實現(簡化了不必要的過多冗餘實現,比Jersey更簡潔,其中上傳、下載、JSON/XML轉換更強大)。JSR311是java中實現Restful Web Service的API規範(JSR311: JAX-RS: The Java API for RESTful Web Services)。JSR311通過使用註解(annotation)把POJO暴露成Web Service,達到輕量化。
核心功能:
- RequestMethod支持GET, POST, DELETE, PUT
- 參數獲取支持 @FormParam, @PathParam, @QueryParam, @HeaderParam等
- 內容支持常用的JSON, XML, TEXT
- 能夠方便地實現Java複雜對象, List, Map對象與JSON/XML的互轉換
- 支持多文件、多參數上傳,支持文件下載
框架核心主要包如下:
slw-framework-1.x.jar (37K)
slw-common-1.x.jar (41K)
slw-restserver-1.x.jar (13K)
slw-restclient-1.0.x.jar (7K)
服務端工程用到的包如下(下文Demo工程中都有):
Demo工程框如下:
1, 在web.xml加入SlwRest Servlet
<!-- SlwRest Super Lightweight Rest -->
<servlet>
<servlet-name>SlwRESTful</servlet-name>
<servlet-class>org.slw.rest.servlet.RestfulServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SlwRESTful</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
說明:上述Servlet對所有/rest/*的訪問請求進行響應,如http://localhost:8080/slwRestServer/rest/users/user?id=
2, 在slw-service.xml中註冊寫好的服務資源,可以加多個
<?xml version="1.0" encoding="UTF-8"?>
<slw-service>
<slwControllers/>
<slwRestServices>
<service class="slw.rest.server.resource.UserResource"/>
</slwRestServices>
</slw-service>
說明:見上文工程截圖,有個ClassReload.java通過Run As Application也可以自動生成slw-service.xml文件。
3, 定義一個服務資源,只需要在標準Java類前面加一行@SlwRestService註解即可
@Path("/users")
@SlwRestService
public class UserResource {
private static Map<String, SlwUser> userMap = new HashMap<String, SlwUser>();
/**
* 根據id查詢 users/user?id=001
* @param id
* @return
*/
@GET
@Path("/user")
@Produces(MediaType.APPLICATION_JSON)
public SlwUser getUserById_Query(@QueryParam(value = "id") String id) {
SlwUser u = userMap.get(id);
return u;
}
}
說明:類名中的Path定義"users" 即 http://localhost:8080/slwRestServer/rest/users 表示該類資源總的訪問路徑, 方法中的Path定義"user",表示客戶端可通過URL:http://localhost:8080/slwRestServer/rest/users/user?id=001訪問請求。
相關內容:
1、替代Jersey的超輕量RESTful框架—SlwRest(Super Lightweight Rest)
2、SlwRest(Super Lightweight Rest)RESTful框架服務端部署
3、SlwRest(Super Lightweight Rest)RESTful框架服務端開發(1)-RequestMethod
4、SlwRest(Super Lightweight Rest)RESTful框架服務端開發(2)-參數註解,LIST,MAP,文件上傳,下載
框架及DEMO下載:
王偉東
2018年7月