apollo|使用.net core操作Apollo
【apollo|使用.net core操作Apollo】Apollo提供了一套的Http REST接口,使第三方应用能够自己管理配置。
apollo第三方接入平台文档说明:apollo第三方接入平台文档说明
第一步:需要下载和引用Com.Ctrip.Framework.Apollo.OpenApi.dll组件,可以下载apollo项目生成组件,地址:apollo项目
第二步:用管理员账号登录apollo,点击管理员工具—开放平台授权管理
文章图片
申请token
文章图片
第三步:配置程序配置文件,在appsettings.Development.json中增加apollo配置
文章图片
修改Program.cs文件
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, builder) =>
{
builder
.AddApollo(builder.Build().GetSection("apollo"))
.AddNamespace("application")
.AddDefault(ConfigFileFormat.Xml)
.AddDefault(ConfigFileFormat.Json)
.AddDefault();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
第四步:开始编程
public static INamespaceClient CreateNamespaceClient() => Factory.CreateNamespaceClient(Current.appid, Env);
//第一个参数是要操作的appid,第二个参数是要操作的环境
private static IOpenApiFactory Factory { get;
} = new OpenApiFactory(new OpenApiOptions
{
PortalUrl = new Uri(Current.Url),//apollo地址
Token = Current.Token//刚申请的token值
});
//查询
public async Task GetData()
{
string key = Current.Key;
//要操作的key值
var client = CreateNamespaceClient();
var v = await client.GetItem(key).ConfigureAwait(false);
return v.Value ;
}
//修改
public async Task UpdateData()
{
string key = Current.Key;
//要操作的key值
var client = CreateNamespaceClient();
var v = await client.GetItem(key).ConfigureAwait(false);
v.Value ="https://www.it610.com/article/12121212";
await client.UpdateItem(v).ConfigureAwait(false);
return true;
}
//删除
public async Task DelData()
{
string key = Current.Key;
//要操作的key值
var client = CreateNamespaceClient();
var v = await client.RemoveItem(key).ConfigureAwait(false);
return v;
}
//创建
public async Task CreateData()
{
var client = CreateNamespaceClient();
var item = await client.CreateItem(new Item
{
Key = key,
Value = https://www.it610.com/article/value1,
DataChangeCreatedBy ="apollo"
}).ConfigureAwait(false);
return v;
}
//发布
public async Task PublishData()
{
string key = Current.Key;
//要操作的key值
var client = CreateNamespaceClient();
var result = await client.GetNamespaceInfo().ConfigureAwait(false);
var release = new NamespaceRelease
{
ReleasedBy = result.DataChangeCreatedBy,
ReleaseComment = "发布",
ReleaseTitle = $"{DateTime.Now:yyyyMMddHHmmss}-release"
};
await client.Publish(release).ConfigureAwait(false);
return true;
}
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小