优点:简化api调用过程,WebApiClient.AOT.dll中的IHttpApi接口
缺点:只适用于内部服务之间的调用(没有验证过程)
1.继承IHttpAPi接口
public interface IService: IHttpApi
{
[HttpGet("api/getvalue/{id}")]
Task<ValueModel> GetValue([PathQuery]Guid id); [HttpGet("api/getallvalue")]
Task<ValueModel[]> GetValues();
}
2.在startup中注入
services.AddSingleton(serviceProvider => HttpApiClient.Create<IService>(serviceProvider.GetRequiredService<ApiConfig>()));
3.在ApiConfig配置api地址
public class ApiConfig : HttpApiConfig
{
public ApiConfig(IConfiguration configuration, ILoggerFactory loggingFactory)
{
var httpHost = configuration["apiurl"];//apiurl在配置文件中
HttpHost = new Uri(httpHost);
}
}
然后,就可以使用IService.GetValue(id)调用api/getvalue/{id}