【问题标题】:Spring REST API for web- and mobile-clients用于 Web 和移动客户端的 Spring REST API
【发布时间】:2015-12-24 20:56:33
【问题描述】:

这是我在 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 一起)吗?还是有更好的方法?

【问题讨论】:

标签: spring rest jsf controller backend


【解决方案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 Security 来保护 Rest API,但我最简单的方法是将每个请求的基本 auth 标头发送到安全的 URI

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

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

【讨论】:

  • 谢谢!这证实了我使用 REST-API 和 Spring Security 进行身份验证/登录的想法。现在我必须决定是采用 Spring MVC Controller 方式还是 Jersey 方式来实现 REST-API。有人有将 REST-API 与 JSF/Primefaces 一起使用的经验吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-05
    • 2019-02-06
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多