适用于Web和移动客户端的Spring REST API

时间:2015-09-27 14:38:05

标签: spring rest jsf controller backend

这是我关于StackOverflow的第一个问题,我希望有人可以帮助我。 : - )

我打算用spring roo构建一个web应用程序(后端)。对于后端,我将使用Spring和Hibernate / JPA。在未来,我将实现一个Web客户端(JSF / Primefaces),一个移动客户端(Android)和一个Windows应用程序。 使用spring roo,可以轻松创建具有域类,存储库和服务的分层体系结构。这部分很有趣。

但现在我正在考虑远程处理以及如何将所有客户端(Web,移动设备,Windows)与我的后端连接起来。

1。)您更喜欢客户端和后端之间的远程处理? SOAP-Web服务或REST-API(例如,使用JSON)。

2.如果REST-API:API应该如何用于身份验证/登录功能? REST是面向资源的,但是如何使用REST API实现身份验证?

目前我认为REST-API是个好主意。因为我使用spring,所以很容易创建一个支持REST的Spring MVC控制器。但这是为所有三个设备实现REST API的正确方法吗?网络客户端,例如应该使用JSF和Primefaces实现,我不使用spring MVC作为Web层。

3.)我是否可以使用Spring MVC控制器来构建REST API(与Web层中的JSF一起)?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

1。)您更喜欢客户端和后端之间的远程处理? SOAP-Web服务或REST-API(例如,使用JSON)。

我对SOAP-WS没有太多经验,但我对使用JSON的REST-API有很多经验。移动,Web和服务器端客户端有很多实现,实现起来相当简单。

2.如果REST-API:API应该如何用于身份验证/登录功能? REST是面向资源的,但如何使用REST API实现身份验证?

如果您已经使用spring,我建议使用Spring Security保护您的API。即使您最终没有使用Spring MVC进行API实现,也可以使用spring security。有许多方法可以使用spring安全性来保护rest API,但我最简单的方法是将每个请求的基本auth头发送到安全URI

3.)我是否可以使用Spring MVC控制器来构建REST API(与Web层中的JSF一起)?或者有更好的方法吗?

Spring MVC控制器可以正常工作,但我建议使用RestEasy或Jersey。我发现它们更灵活。

答案 1 :(得分:-1)

我同意@mad_fox。另外,我想为你的问题#2添加另一个选项。如果您不想使用Spring安全性,可以使用spring和basic java拦截器编写自己的基于令牌的身份验证机制。 您可以将令牌存储在浏览器本地存储中。