Asp.Net 核心 Api 服务 Multi-site
One Asp.Net Core Api Service for Multi-site
我只想为多个网站创建一个 Asp.Net 核心 API 服务。它们几乎相同,但内容不同。
我想知道哪个网站调用 API 到 return 该网站的内容。
例如:
网站一(angular 客户):http://Game.medis.land
网站二(angular 客户端):http://Tech.medis.land
API(/api/getservices) => return所有服务(取决于哪个站点调用API,方法return不同的值)
if Site-One call =>{"previews","reviews"}
if Site-Two 调用 =>{"软件","硬件"}
我该如何处理?我可以从请求的 Header 中得到 URL 吗?还是别的?
您可以通过多种方式处理它:
1- ClientType:每个客户都应该自我介绍,例如 Client B 在所有请求中设置一个 header key (例如:ClientType:client-b
),您可以确定您的客户。
2- Origin:您可以从请求 header 中读取 Origin
并根据其域确定客户,但我认为这不是个好主意,因为域名可能随时更改。
3-Api key:你可以为每个客户端生成一个唯一的密钥(Guid
是一个不错的选择)并且客户端应该设置他们的api 在所有请求中键入 header(例如 api-key: XXXXXXXX
),并在服务器端通过键确定客户端。
最后,我建议您在中间件中处理客户端,并将其与 http 功能一起传递给您的控制器。
我只想为多个网站创建一个 Asp.Net 核心 API 服务。它们几乎相同,但内容不同。
我想知道哪个网站调用 API 到 return 该网站的内容。
例如:
网站一(angular 客户):http://Game.medis.land
网站二(angular 客户端):http://Tech.medis.land
API(/api/getservices) => return所有服务(取决于哪个站点调用API,方法return不同的值)
if Site-One call =>{"previews","reviews"}
if Site-Two 调用 =>{"软件","硬件"}
我该如何处理?我可以从请求的 Header 中得到 URL 吗?还是别的?
您可以通过多种方式处理它:
1- ClientType:每个客户都应该自我介绍,例如 Client B 在所有请求中设置一个 header key (例如:ClientType:client-b
),您可以确定您的客户。
2- Origin:您可以从请求 header 中读取 Origin
并根据其域确定客户,但我认为这不是个好主意,因为域名可能随时更改。
3-Api key:你可以为每个客户端生成一个唯一的密钥(Guid
是一个不错的选择)并且客户端应该设置他们的api 在所有请求中键入 header(例如 api-key: XXXXXXXX
),并在服务器端通过键确定客户端。
最后,我建议您在中间件中处理客户端,并将其与 http 功能一起传递给您的控制器。