如何使用Java EE应用程序实现Restlet框架?在现有Java EE应用程序中实现RESTlet
我已经尝试过使用Spring的Restful Web服务,但不知道如何开始使用Restlet框架。
这是比Spring MVC的RESTful实现更好的选择吗?这两个框架有什么优点和缺点?
如何使用Java EE应用程序实现Restlet框架?在现有Java EE应用程序中实现RESTlet
我已经尝试过使用Spring的Restful Web服务,但不知道如何开始使用Restlet框架。
这是比Spring MVC的RESTful实现更好的选择吗?这两个框架有什么优点和缺点?
Restlet的优势在于它为REST提供了完整的API,在使用REST原则时具有灵活性,并且可以解决客户端和服务器端的问题。
您可以考虑的另一方面是Restlet是一个完整的RESTful中间件,允许使用REST架构连接各种异构系统。事实上,Restlet可以使用相同的API在多个环境(Java,Java EE,Android,GWT,Google App Engine)和云平台(EC2,GAE,Azure)上执行,以提供RESTful应用程序。它内部解决了每个环境的特定性和局限性。它还允许访问不同类型的REST服务(如OData,S3 ...),集成不同系统(AWS,Google ...)的安全性并为Google的SDC技术提供支持(以安全的方式访问Intranet资源) 。
现在让我们输入代码。在JavaEE中实现Restlet应用程序的最佳方法是使用servlet扩展,该扩展在该应用程序中扮演前端控制器的角色。然后,您可以像往常一样定义您的实体(Application,ServerResource)。你必须创建以下的事情:
的Restlet应用程序(子类应用):
public class ContactApplication extends Application {
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/contact/{id}",
SimpleContactServerResource.class);
return router;
}
}
一个或多个服务器资源:
public class SimpleContactServerResource
extends ServerResource {
private ContactService contactService = (...)
@Get
public Representation getContact(Variant variant) {
Map<String, Object> attributes
= getRequest().getAttributes();
String contactId = (String) attributes.get("id");
Contact contact = contactService.getContact(contactId);
return new JacksonRepresentation<Contact>(contact);
}
(...)
}
提供配置Restlet servlet:
<web-app>
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>org.restlet.gtug.gae.ContactsApplication</param-value>
</context-param>
<servlet>
<servlet-name>ServerServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServerServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
希望它可以帮助你,并提供一个更好的框架视图。