使REST调用更有效率

时间:2017-06-21 01:41:47

标签: java ajax spring rest

所以我有一个返回JSON对象并使用基本身份验证的微服务。

然后我有一个Springboot客户端应用程序,它将对服务进行GET或POST调用。

1)客户端将POST / login,然后将凭据存储在客户端应用程序中

2)然后在每次GET或POST调用时,将以编程方式添加基本标头并使用RestTemplate调用服务。

例如,用户尝试获取项目:

1)通过ajax调用获取http://client/item/ {id}

2)客户端应用会对服务进行RestTemplate调用http://service/item/ {id}

所以我正在编写所有映射2次...我不想在js中公开身份验证详细信息,并且该服务可能会返回我将存储在客户端应用程序中的令牌或信息。

我做错了吗?我在Thymeleaf中使用HTML。

1 个答案:

答案 0 :(得分:1)

如果它是一个绿地项目,我建议转移到Angular或ReactJs + Redux或类似的类别,而不是使用百里香。

但这是一个不同的讨论。回到你的问题,你有两个不同的应用程序是什么原因?为什么不能将所有服务(http://service/item)端点移动到客户端(http://client)。服务(http://service/item)和客户(http://client)是否归您或您的团队所有?

如果迫切需要将服务(http://service/item)和客户端(http://client)分开,那么代码重复是您应该愿意支付的,its the curse of Microservices

其他观点是,您不必将其视为代码重复,假设服务(http://service/item)在Java中,而客户端(http://client)在NodeJ中,那么机会非常少,你会认为它重复自己。

通过将Java Model类作为库发布并在服务(http://service/item)和客户端(http://client)中使用它,可以将代码重复减少一点。我会阻止这种模式,因为你用相同的编程语言来绑定你的制作人和消费者。