我是Spring Boot的新手。 我不确定如何使用所有这些功能来构建我的应用程序:
0)外部JSON静态API
1)Rest API
2)反应流
3)ElasticSearch
4)微服务
5)MongoDB
6)前端有角
我连接到此资源来检索JSON。由于它是外部的,因此我需要检索它,并将其存储在Mongo DB数据库中,并不时检查外部资源JSON是否有更新,并检索更新的字段。 然后,我需要将此JSON传递给ElasticSearch服务器,该服务器将根据所进行的某些查询返回响应。 我希望能够为此使用反应性流以及包括oAuth2,宁静的API,令牌API服务,创建响应的服务以及最终在前端的Angular或React页面以及搜索栏查询的微服务elasticSearch服务器中的JSON数据... 任何有关如何构建此结构的意见或指导都将不胜感激...
答案 0 :(得分:1)
您必须创建@RestController Bean类和@Service Bean类才能接收来自Angular前端的请求;
一旦收到请求,请使用服务(通过@Autowired将其注入某处)对外部源进行http调用,以获取JSON:这是一个服务调用服务,因此您的后端服务是请求的客户。
获取JSON后,对其进行处理并使用另一个@Repository服务保存到MongoDB中。您必须已经使用配置文件配置了mongo存储库。 在这里,您可以选择是将对象关系映射与mongo一起使用,还是直接使用Java Mongo驱动程序而没有更多的内置层。
在将JSON保存到MongoDB中之前,您可以检查数据是否已更改,并基于此转移对ElasticSearch Web服务器的调用,就像您为获取JSON所做的上一次调用所做的那样。
如果OAuth2在外部服务器上,则必须调用它们时,必须添加有效的令牌。令牌可能来自Angular前端的第一个请求,因为微服务必须是无状态的。 您将令牌传递到请求的标题中。
要第一次获得令牌,Angular前端必须实现Oath2客户端,并且必须有一个Oauth2服务器(也许是外部服务?)。
研究是否必须在后端实现Oauth2客户端或服务器,因为它取决于所选的Oauth2流:它们有很多变体。
我希望它能有所帮助!