我使用ASP.NET Core实现了多个restful API组件。我没有使用事件驱动设计或任何消息代理服务。
我想保持简单,所以 假设我有3个安静的独立组件(具有独立的ASP.NET核心项目),除了身份服务器提供者之外,还发布到同一个IIS:
除了从客户端到Apis的外部通信,API网关应该处理所有客户端请求。在内部进行某种沟通。一个很好的例子是为用户获取菜单:
现在,我正在通过一个名为Service Proxies的公共库管理通信,该库具有在cs文件中硬编码的所有api url(仅用于尝试该概念)
public static class Config
{
public static class ServiceURLs
{
public const string AuthorizationAPI ="http://localhost:port/api/Authorization/" ;
}
}
public class AuthorizationServiceProxy : IAuthorizationServiceProxy
{
//ServiceProxy is a custom class that issue http requests in order to get responses
private ServiceProxy _serviceProxy;
public AuthorizationServiceProxy(string accessToken)
{
_serviceProxy = new ServiceProxy(Config.ServiceURLs.AuthorizationAPI, accessToken);
}
public async Task<List<Permission>> GetUserPermissions()
{
var route = "GetUserPermissions";
var result = await
_serviceProxy.GetHttpResponseContentAsType<List<Permission>>(route);
return result;
}
AuthorizationProxy和所有代理只是向API发出请求到另一个。
在我的情况下如何处理进程间通信?