我正在研究微服务架构。我有3个具有不同域名的不同应用程序。假设应用程序1具有API:
"/app/foo-bar"
此API是从应用程序2的某些服务调用的,该服务也由某些API触发。也可以从应用程序3调用此API。
我现在需要的是,在应用程序1中调用API时,我想知道从哪个应用程序中调用了该API。 (应用程序2或应用程序3的域名)
我尝试过这个:
request.getHeader("referer");
但这返回我为空
有什么办法解决这个问题?
答案 0 :(得分:2)
您需要在原始应用程序(示例中为应用程序2或应用程序3)中添加Referer标头,以便将其包含在HttpRequest中。
这里提到了获取源主机的另一种方法: Get URL of the request sender with HttpServletRequest
答案 1 :(得分:2)
您必须在调用API的过程中设置标头。此外,您还必须在该API中获取标头以用作调用方的来源。
在API调用期间 SET标头:import spacy
ipython -m pip install spacy
获取API标头
app/foo-bar
这是进口:
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("referer", "APP_1");
HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);