项目

微服务解决方案:HTTP API 调用

您必须拥有ABP商业版或更高级别的许可证,才能创建微服务解决方案。

微服务解决方案模板使用集成服务来实现微服务间的同步通信。这使得微服务能够通过HTTP请求相互通信。您也可以使用静态动态 C#客户端来调用其他微服务的HTTP API。然而,集成服务是微服务间通信的推荐方式,因为它允许您向外界隐藏端点,并能更轻松地管理您的服务。

集成服务配置

默认情况下,集成服务配置不对外暴露端点。为了启用微服务间的通信,您需要在微服务项目的Module类中进行配置。以下代码展示了如何在Module类中配置集成服务:

public override void ConfigureServices(ServiceConfigurationContext context)
{
    ConfigureIntegrationServices();
}

private void ConfigureIntegrationServices()
{
    Configure<AbpAspNetCoreMvcOptions>(options =>
    {
        options.ExposeIntegrationServices = true;
    });
}

在暴露集成服务之后,您就可以从相关的微服务项目中调用其他微服务的HTTP API了。为此,您需要为相应的微服务/模块项目使用Http.Client包。接下来,您可以在appsettings.json文件中设置相关微服务的端点URL。以下代码展示了如何在appsettings.json文件中设置相关微服务的端点URL:

"RemoteServices": {
    "AbpIdentity": {
        "BaseUrl": "http://localhost:44377"
    }
}

可以参考一个实际的例子:查看管理微服务,它是通过HTTP与身份微服务进行通信的。

当您启用集成服务时,请确保只有集群内的微服务才能访问这些端点。现有的网关应用程序不会将集成服务端点暴露给外界。


在本文档中