Ars.Common.Ocelot
1.9.0
dotnet add package Ars.Common.Ocelot --version 1.9.0
NuGet\Install-Package Ars.Common.Ocelot -Version 1.9.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ars.Common.Ocelot" Version="1.9.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Ars.Common.Ocelot --version 1.9.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Ars.Common.Ocelot, 1.9.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Ars.Common.Ocelot as a Cake Addin #addin nuget:?package=Ars.Common.Ocelot&version=1.9.0 // Install Ars.Common.Ocelot as a Cake Tool #tool nuget:?package=Ars.Common.Ocelot&version=1.9.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
<p align="center"> <img height="140" src="https://github.com/aabb1212/Ars/blob/master/logo.png"> </p>
Ars
a simple .net6 webapi framework with some extensions.
include autofac,consul,grpc,efcore,identityserver4,redis,signalr,localization,skyapm,upload and download excel,
cap,ocelot,webapiclientcore extensions. and some samples with them.
Getting Started
NuGet
ars can be installed in your project with the following command.
PM> Install-Package Ars.Common.Host
ars supports some extensions, following packages are available to install:
PM> Install-Package Ars.Common.IdentityServer4
PM> Install-Package Ars.Common.Consul
PM> Install-Package Ars.Common.EFCore
PM> Install-Package Ars.Common.Redis
PM> Install-Package Ars.Common.SignalR
PM> Install-Package Ars.Common.SkyWalking
PM> Install-Package Ars.Common.Cap
PM> Install-Package Ars.Common.Ocelot
PM> Install-Package Ars.Common.RpcClientCore
Configuration
add Service:
var builder = WebApplication.CreateBuilder(args);
builder.Services
//add ars core service
.AddArserviceCore(builder, config =>
{
//add consul client service
config.AddArsConsulDiscoverClient();
//add consul register service
config.AddArsConsulRegisterServer();
//add identity resource service
config.AddArsIdentityClient();
//add identity server service
config.AddArsIdentityServer();
//add redis service
config.AddArsRedis();
//add localization service
config.AddArsLocalization();
//add signalr service
config.AddArsSignalR(config =>
{
config.CacheType = 0;
config.UseMessagePackProtocol = true;
});
//add skyapm service
config.AddArsSkyApm();
//add cap service
config.AddArsCap(option =>
{
option.UseEntityFramework<xxxDbContext>();
option.UseRabbitMQ(mq =>
{
mq.HostName = "localhost";
mq.UserName = "guest";
mq.Password = "guest";
});
});
//add ocelot service
//example service -> sample/main/ArsApiGateway
config.AddArsOcelot(option =>
{
//�����������https������������
//option.AddDelegatingHandler<X509CertificateDelegatingHandler>();
});
//add webapiclientcore service
config.AddArsHttpApi<IWeatherForecastHttpApi>(option =>
{
//����arsĬ�ϵ�httpclient
option.UseArsHttpClient = true;
//����arsĬ�ϵ�HttpsMessageHandler
option.UseHttps = true;
//����arsĬ�ϵIJ���
option.UseHttpClientCustomPolicy = true;
});
config.AddArsHttpApi<IDbHttpApi>(configureBuilder:builder =>
{
//������Զ������
builder.AddArsTransientHttpErrorPolicy();
//������Զ���HttpsMessageHandler
builder.ConfigureArsPrimaryHttpsMessageHandler();
});
})
//add dbcontext service
.AddArsDbContext<xxxDbContext>()
//add exportexcel service
.AddArsExportExcelService(typeof(Program).Assembly)
//add uploadexcel service
.AddArsUploadExcelService(option =>
{
option.UploadRoot = "wwwroot/upload";
option.RequestPath = "apps/upload";
option.SlidingExpireTime = TimeSpan.FromDays(1);
});
use Application:
var app = builder.Build();
//ars exception middleware
app.UsArsExceptionMiddleware();
.....
//use ars core application
app.UseArsCore()
//use uploadexcel application
.UseArsUploadExcel();
change your appsettings.Development.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
//consul client config
"ConsulDiscoverConfiguration": {
"ConsulDiscovers": [
{
"ConsulAddress": "http://ip:port",
"ServiceName": "apigrpc",
"Communication":{
"CommunicationWay":0,
"GrpcUseHttp1Protocol": true,
"UseHttps": true,
"UseIdentityServer4Valid": true,
"IdentityServer4Address": "http://ip:port",
"ClientId": "grpc-key",
"ClientSecret": "grpc-secret",
"Scope": "grpcapi-scope",
"GrantType": "client_credentials"
}
}
]
},
//consul register config
"ConsulRegisterConfiguration": {
"ConsulAddress": "http://ip:port",
"ServiceName": "apigrpc",
"UseHttps": true,
},
//resource server identity config
"ArsIdentityClientConfiguration": {
"Authority": "http://ip:port",
"ApiName": "apiIds4Second",
"RequireHttpsMetadata": true,
},
//identity server config
"ArsIdentityServerConfiguration": {
"ArsApiResources": [
{
"Name": "apiIds4First",
"DisplayName": "my default grpcapi",
"UserClaims": [
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"tenant",
"sub"
],
"Scopes": [
"grpcapi-scope"
]
},
{
"Name": "apiIds4Second",
"DisplayName": "my default pckeapi",
"UserClaims": [
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"tenant",
"sub"
],
"Scopes": [
"ids4-scope",
"openid",
"profile"
]
}
],
"ArsClients": [
{
"AppKey": "grpc-key",
"AppSecret": "grpc-secret",
"AccessTokenLifetime": 3600,
"AllowedScopes": [ "grpcapi-scope" ],
"GrantType": [ "client_credentials", "password" ],
"AllowedCorsOrigins": [ "http://ip:port" ]
},
{
"AppKey": "pcke-key",
"AppSecret": "pcke-secret",
"AccessTokenLifetime": 3600,
"AllowedScopes": [ "openid", "profile", "ids4-scope" ],
"GrantType": [ "authorization_code" ],
"RedirectUris": [ "http://ip:port/signin-oidc" ],
"PostLogoutRedirectUris": [ "http://ip:port/signout-callback-oidc" ]
}
],
"ArsApiScopes": [
"grpcapi-scope",
"ids4-scope",
"openid",
"profile"
],
},
//redis config
"ArsCacheConfiguration": {
"RedisConnection": "ip",
"DefaultDB": 1
},
//localization config
"ArsLocalizationConfiguration": {
"ResourcesPath": "Resources",
"IsAddViewLocalization": true,
"IsAddDataAnnotationsLocalization": true,
"Cultures": [
"en-GB",
"en",
"fr-FR",
"fr",
"en-US",
"zh-Hans"
],
"DefaultRequestCulture": "en-US"
},
//DbContext config
"ArsDbContextConfiguration": {
//1 mysql;2 mssql
"DbType": 2,
//Database address
"DefaultString": "Data Source=xxxxx; Initial Catalog=xxxxx;user id=xxxxx;pwd=xxxxx"
},
//Basic config
"ArsBasicConfiguration": {
"ServiceIp": "192.168.110.65",
"ServicePort": 5105,
"CertificatePath": "Certificates//IS4.pfx",
"CertificatePassWord": "aabb1212",
"UseHttps": true
}
}
License
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Ars.Common.Core (>= 1.9.0)
- MMLib.SwaggerForOcelot (>= 6.3.2)
- Ocelot (>= 18.0.0)
- Ocelot.Provider.Consul (>= 18.0.0)
- Ocelot.Provider.Polly (>= 18.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.