Skip to content

Commit 13a9b30

Browse files
committed
name->alias
1 parent 029301b commit 13a9b30

File tree

9 files changed

+87
-86
lines changed

9 files changed

+87
-86
lines changed

WebApiClientCore.Extensions.OAuths/Attributes/NamedOAuthTokenAttribute.cs renamed to WebApiClientCore.Extensions.OAuths/Attributes/AliasOAuthTokenAttribute.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ namespace WebApiClientCore.Attributes
77
/// <summary>
88
/// 表示别名的token应用特性
99
/// </summary>
10-
public class NamedOAuthTokenAttribute : OAuthTokenAttribute
10+
public class AliasOAuthTokenAttribute : OAuthTokenAttribute
1111
{
1212
/// <summary>
13-
/// 获取token提供者别名的参数名
13+
/// 获取TokenProvider别名的参数名
1414
/// </summary>
15-
public string NameParameterName { get; }
15+
public string AliasParameterName { get; }
1616

1717
/// <summary>
1818
/// 别名的token应用特性
1919
/// </summary>
20-
/// <param name="nameParameterName">token提供者别名的参数名</param>
21-
public NamedOAuthTokenAttribute(string nameParameterName)
20+
/// <param name="aliasParameterName">TokenProvider别名的参数名</param>
21+
public AliasOAuthTokenAttribute(string aliasParameterName)
2222
{
23-
this.NameParameterName = nameParameterName;
23+
this.AliasParameterName = aliasParameterName;
2424
}
2525

2626
/// <summary>
@@ -31,13 +31,13 @@ public NamedOAuthTokenAttribute(string nameParameterName)
3131
/// <exception cref="InvalidOperationException"></exception>
3232
protected sealed override ITokenProvider GetTokenProvider(ApiRequestContext context)
3333
{
34-
if (context.TryGetArgument<string>(this.NameParameterName, StringComparer.OrdinalIgnoreCase, out var name))
34+
if (context.TryGetArgument<string>(this.AliasParameterName, StringComparer.OrdinalIgnoreCase, out var alias))
3535
{
3636
var tokenProviderFactory = context.HttpContext.ServiceProvider.GetRequiredService<ITokenProviderFactory>();
37-
return tokenProviderFactory.Create(context.ActionDescriptor.InterfaceType, this.TokenProviderSearchMode, name);
37+
return tokenProviderFactory.Create(context.ActionDescriptor.InterfaceType, this.TokenProviderSearchMode, alias);
3838
}
3939

40-
throw new InvalidOperationException($"未提供有效的参数值: {this.NameParameterName}");
40+
throw new InvalidOperationException($"未提供有效的参数值: {this.AliasParameterName}");
4141
}
4242
}
4343
}

WebApiClientCore.Extensions.OAuths/DependencyInjection/TokenProviderExtensions.GrantTypeClient.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ public static partial class TokenProviderExtensions
1414
/// </summary>
1515
/// <typeparam name="THttpApi">接口类型</typeparam>
1616
/// <param name="services"></param>
17-
/// <param name="name">token提供者的别名</param>
17+
/// <param name="alias">TokenProvider的别名</param>
1818
/// <returns></returns>
19-
public static OptionsBuilder<ClientCredentialsOptions> AddClientCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string name = "")
19+
public static OptionsBuilder<ClientCredentialsOptions> AddClientCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string alias = "")
2020
{
21-
var builder = services.AddTokenProvider<THttpApi, ClientCredentialsTokenProvider>(name);
21+
var builder = services.AddTokenProvider<THttpApi, ClientCredentialsTokenProvider>(alias);
2222
return new OptionsBuilder<ClientCredentialsOptions>(builder.Services, builder.Name);
2323
}
2424

@@ -39,12 +39,12 @@ public static OptionsBuilder<ClientCredentialsOptions> AddClientCredentialsToken
3939
/// </summary>
4040
/// <typeparam name="THttpApi">接口类型</typeparam>
4141
/// <param name="services"></param>
42-
/// <param name="name">token提供者的别名</param>
42+
/// <param name="alias">TokenProvider的别名</param>
4343
/// <param name="configureOptions">配置</param>
4444
/// <returns></returns>
45-
public static OptionsBuilder<ClientCredentialsOptions> AddClientCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string name, Action<ClientCredentialsOptions> configureOptions)
45+
public static OptionsBuilder<ClientCredentialsOptions> AddClientCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string alias, Action<ClientCredentialsOptions> configureOptions)
4646
{
47-
return services.AddClientCredentialsTokenProvider<THttpApi>(name).Configure(configureOptions);
47+
return services.AddClientCredentialsTokenProvider<THttpApi>(alias).Configure(configureOptions);
4848
}
4949
}
5050
}

WebApiClientCore.Extensions.OAuths/DependencyInjection/TokenProviderExtensions.GrantTypePassword.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ public static partial class TokenProviderExtensions
1414
/// </summary>
1515
/// <typeparam name="THttpApi">接口类型</typeparam>
1616
/// <param name="services"></param>
17-
/// <param name="name">token提供者的别名</param>
17+
/// <param name="alias">TokenProvider的别名</param>
1818
/// <returns></returns>
19-
public static OptionsBuilder<PasswordCredentialsOptions> AddPasswordCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string name = "")
19+
public static OptionsBuilder<PasswordCredentialsOptions> AddPasswordCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string alias = "")
2020
{
21-
var builder = services.AddTokenProvider<THttpApi, PasswordCredentialsTokenProvider>(name);
21+
var builder = services.AddTokenProvider<THttpApi, PasswordCredentialsTokenProvider>(alias);
2222
return new OptionsBuilder<PasswordCredentialsOptions>(builder.Services, builder.Name);
2323
}
2424

@@ -39,12 +39,12 @@ public static OptionsBuilder<PasswordCredentialsOptions> AddPasswordCredentialsT
3939
/// </summary>
4040
/// <typeparam name="THttpApi">接口类型</typeparam>
4141
/// <param name="services"></param>
42-
/// <param name="name">token提供者的别名</param>
42+
/// <param name="alias">TokenProvider的别名</param>
4343
/// <param name="configureOptions">配置</param>
4444
/// <returns></returns>
45-
public static OptionsBuilder<PasswordCredentialsOptions> AddPasswordCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string name, Action<PasswordCredentialsOptions> configureOptions)
45+
public static OptionsBuilder<PasswordCredentialsOptions> AddPasswordCredentialsTokenProvider<THttpApi>(this IServiceCollection services, string alias, Action<PasswordCredentialsOptions> configureOptions)
4646
{
47-
return services.AddPasswordCredentialsTokenProvider<THttpApi>(name).Configure(configureOptions);
47+
return services.AddPasswordCredentialsTokenProvider<THttpApi>(alias).Configure(configureOptions);
4848
}
4949
}
5050
}

WebApiClientCore.Extensions.OAuths/DependencyInjection/TokenProviderExtensions.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ public static partial class TokenProviderExtensions
1818
/// <typeparam name="THttpApi">接口类型</typeparam>
1919
/// <param name="services"></param>
2020
/// <param name="tokenRequest">token请求委托</param>
21-
/// <param name="name">token提供者的别名</param>
21+
/// <param name="alias">TokenProvider的别名</param>
2222
/// <returns></returns>
23-
public static ITokenProviderBuilder AddTokenProvider<THttpApi>(this IServiceCollection services, Func<IServiceProvider, Task<TokenResult?>> tokenRequest, string name = "")
23+
public static ITokenProviderBuilder AddTokenProvider<THttpApi>(this IServiceCollection services, Func<IServiceProvider, Task<TokenResult?>> tokenRequest, string alias = "")
2424
{
25-
return services.AddTokenProvider<THttpApi, DelegateTokenProvider>(s => new DelegateTokenProvider(s, tokenRequest), name);
25+
return services.AddTokenProvider<THttpApi, DelegateTokenProvider>(s => new DelegateTokenProvider(s, tokenRequest), alias);
2626
}
2727

2828
/// <summary>
@@ -32,7 +32,7 @@ public static ITokenProviderBuilder AddTokenProvider<THttpApi>(this IServiceColl
3232
/// <typeparam name="TTokenProvider">token提供者类型</typeparam>
3333
/// <param name="services"></param>
3434
/// <param name="tokenProviderFactory">token提供者创建工厂</param>
35-
/// <param name="name">token提供者的别名</param>
35+
/// <param name="alias">TokenProvider的别名</param>
3636
/// <returns></returns>
3737
public static ITokenProviderBuilder AddTokenProvider<
3838
#if NET5_0_OR_GREATER
@@ -42,13 +42,13 @@ public static ITokenProviderBuilder AddTokenProvider<
4242
#if NET5_0_OR_GREATER
4343
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
4444
#endif
45-
TTokenProvider>(this IServiceCollection services, Func<IServiceProvider, TTokenProvider> tokenProviderFactory, string name = "")
45+
TTokenProvider>(this IServiceCollection services, Func<IServiceProvider, TTokenProvider> tokenProviderFactory, string alias = "")
4646
where TTokenProvider : class, ITokenProvider
4747
{
4848
return services
4949
.RemoveAll<TTokenProvider>()
5050
.AddTransient(tokenProviderFactory)
51-
.AddTokenProviderCore<THttpApi, TTokenProvider>(name);
51+
.AddTokenProviderCore<THttpApi, TTokenProvider>(alias);
5252
}
5353

5454

@@ -58,7 +58,7 @@ public static ITokenProviderBuilder AddTokenProvider<
5858
/// <typeparam name="THttpApi">接口类型</typeparam>
5959
/// <typeparam name="TTokenProvider">token提供者类型</typeparam>
6060
/// <param name="services"></param>
61-
/// <param name="name">token提供者的别名</param>
61+
/// <param name="alias">TokenProvider的别名</param>
6262
/// <returns></returns>
6363
public static ITokenProviderBuilder AddTokenProvider<
6464
#if NET5_0_OR_GREATER
@@ -68,13 +68,13 @@ public static ITokenProviderBuilder AddTokenProvider<
6868
#if NET5_0_OR_GREATER
6969
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
7070
#endif
71-
TTokenProvider>(this IServiceCollection services, string name = "")
71+
TTokenProvider>(this IServiceCollection services, string alias = "")
7272
where TTokenProvider : class, ITokenProvider
7373
{
7474
return services
7575
.RemoveAll<TTokenProvider>()
7676
.AddTransient<TTokenProvider>()
77-
.AddTokenProviderCore<THttpApi, TTokenProvider>(name);
77+
.AddTokenProviderCore<THttpApi, TTokenProvider>(alias);
7878
}
7979

8080

@@ -84,14 +84,14 @@ public static ITokenProviderBuilder AddTokenProvider<
8484
/// <typeparam name="THttpApi">接口类型</typeparam>
8585
/// <typeparam name="TTokenProvider">token提供者类型</typeparam>
8686
/// <param name="services"></param>
87-
/// <param name="name">token提供者的别名</param>
87+
/// <param name="alias">TokenProvider的别名</param>
8888
/// <returns></returns>
89-
private static ITokenProviderBuilder AddTokenProviderCore<THttpApi, TTokenProvider>(this IServiceCollection services, string name)
89+
private static ITokenProviderBuilder AddTokenProviderCore<THttpApi, TTokenProvider>(this IServiceCollection services, string alias)
9090
where TTokenProvider : class, ITokenProvider
9191
{
9292
services
9393
.AddOptions<TokenProviderFactoryOptions>()
94-
.Configure(o => o.Register<THttpApi, TTokenProvider>(name));
94+
.Configure(o => o.Register<THttpApi, TTokenProvider>(alias));
9595

9696
services
9797
.AddOptions<HttpApiOptions>(HttpApi.GetName(typeof(OAuth2TokenClient)))
@@ -101,7 +101,7 @@ private static ITokenProviderBuilder AddTokenProviderCore<THttpApi, TTokenProvid
101101
services.TryAddTransient(typeof(TokenProviderService<,>));
102102
services.TryAddSingleton<ITokenProviderFactory, TokenProviderFactory>();
103103

104-
var providerName = TokenProviderService<THttpApi, TTokenProvider>.GetTokenProviderName(name);
104+
var providerName = TokenProviderService<THttpApi, TTokenProvider>.GetTokenProviderName(alias);
105105
return new TokenProviderBuilder(providerName, services);
106106
}
107107

WebApiClientCore.Extensions.OAuths/ITokenProviderFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ public interface ITokenProviderFactory
2121
/// </summary>
2222
/// <param name="httpApiType">接口类型</param>
2323
/// <param name="typeMatchMode">类型匹配模式</param>
24-
/// <param name="name">TokenProvider的区分名称</param>
24+
/// <param name="alias">TokenProvider的别名</param>
2525
/// <returns></returns>
2626
/// <exception cref="InvalidOperationException"></exception>
27-
ITokenProvider Create(Type httpApiType, TypeMatchMode typeMatchMode, string name);
27+
ITokenProvider Create(Type httpApiType, TypeMatchMode typeMatchMode, string alias);
2828
}
2929
}

WebApiClientCore.Extensions.OAuths/ITokenProviderService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ interface ITokenProviderService
1111
ITokenProvider TokenProvider { get; }
1212

1313
/// <summary>
14-
/// 设置服务提供者的别名
14+
/// 设置服务提供者的名称
1515
/// </summary>
16-
/// <param name="name"></param>
17-
void SetProviderName(string name);
16+
/// <param name="alias"></param>
17+
void SetProviderName(string alias);
1818
}
1919
}

WebApiClientCore.Extensions.OAuths/TokenProviderFactory.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,29 @@ public TokenProviderFactory(IServiceProvider serviceProvider, IOptions<TokenProv
3535
/// <exception cref="InvalidOperationException"></exception>
3636
public ITokenProvider Create(Type httpApiType, TypeMatchMode typeMatchMode)
3737
{
38-
return this.Create(httpApiType, typeMatchMode, name: string.Empty);
38+
return this.Create(httpApiType, typeMatchMode, alias: string.Empty);
3939
}
4040

4141
/// <summary>
4242
/// 通过接口类型获取或创建其对应的token提供者
4343
/// </summary>
4444
/// <param name="httpApiType">接口类型</param>
4545
/// <param name="typeMatchMode">类型匹配模式</param>
46-
/// <param name="name">TokenProvider的别名</param>
46+
/// <param name="alias">TokenProvider的别名</param>
4747
/// <returns></returns>
4848
/// <exception cref="InvalidOperationException"></exception>
49-
public ITokenProvider Create(Type httpApiType, TypeMatchMode typeMatchMode, string name)
49+
public ITokenProvider Create(Type httpApiType, TypeMatchMode typeMatchMode, string alias)
5050
{
5151
if (httpApiType == null)
5252
{
5353
throw new ArgumentNullException(nameof(httpApiType));
5454
}
55-
if (name == null)
55+
if (alias == null)
5656
{
57-
throw new ArgumentNullException(nameof(name));
57+
throw new ArgumentNullException(nameof(alias));
5858
}
5959

60-
var serviceKey = new ServiceKey(httpApiType, typeMatchMode, name);
60+
var serviceKey = new ServiceKey(httpApiType, typeMatchMode, alias);
6161
return this.tokenProviderCache.GetOrAdd(serviceKey, this.CreateTokenProvider);
6262
}
6363

@@ -69,46 +69,46 @@ public ITokenProvider Create(Type httpApiType, TypeMatchMode typeMatchMode, stri
6969
/// <exception cref="InvalidOperationException"></exception>
7070
private ITokenProvider CreateTokenProvider(ServiceKey serviceKey)
7171
{
72-
var name = serviceKey.Name;
72+
var alias = serviceKey.Alias;
7373
var httpApiType = serviceKey.HttpApiType;
74-
if (this.options.TryGetValue(httpApiType, out var descriptor) && descriptor.ContainsName(name))
74+
if (this.options.TryGetValue(httpApiType, out var descriptor) && descriptor.ContainsAlias(alias))
7575
{
7676
var service = (ITokenProviderService)this.serviceProvider.GetRequiredService(descriptor.ServiceType);
77-
service.SetProviderName(name);
77+
service.SetProviderName(alias);
7878
return service.TokenProvider;
7979
}
8080

8181
if (serviceKey.TypeMatchMode == TypeMatchMode.TypeOrBaseTypes)
8282
{
83-
var tokenProvider = this.CreateTokenProviderFromBaseType(httpApiType, name);
83+
var tokenProvider = this.CreateTokenProviderFromBaseType(httpApiType, alias);
8484
if (tokenProvider != null)
8585
{
8686
return tokenProvider;
8787
}
8888
}
8989

9090

91-
var message = string.IsNullOrEmpty(name)
91+
var message = string.IsNullOrEmpty(alias)
9292
? $"尚未注册{httpApiType}无别名的token提供者"
93-
: $"尚未注册{httpApiType}别名为{name}的token提供者";
93+
: $"尚未注册{httpApiType}别名为{alias}的token提供者";
9494
throw new InvalidOperationException(message);
9595
}
9696

9797
/// <summary>
9898
/// 从基础接口创建TokenProvider
9999
/// </summary>
100100
/// <param name="httpApiType"></param>
101-
/// <param name="name">别名</param>
101+
/// <param name="alias">别名</param>
102102
/// <exception cref="InvalidOperationException"></exception>
103103
/// <returns></returns>
104-
private ITokenProvider? CreateTokenProviderFromBaseType(Type httpApiType, string name)
104+
private ITokenProvider? CreateTokenProviderFromBaseType(Type httpApiType, string alias)
105105
{
106106
foreach (var baseType in httpApiType.GetInterfaces())
107107
{
108-
if (this.options.TryGetValue(baseType, out var descriptor) && descriptor.ContainsName(name))
108+
if (this.options.TryGetValue(baseType, out var descriptor) && descriptor.ContainsAlias(alias))
109109
{
110110
var service = (ITokenProviderService)this.serviceProvider.GetRequiredService(descriptor.ServiceType);
111-
service.SetProviderName(name);
111+
service.SetProviderName(alias);
112112
return service.TokenProvider;
113113
}
114114
}
@@ -126,21 +126,21 @@ private sealed class ServiceKey : IEquatable<ServiceKey>
126126

127127
public TypeMatchMode TypeMatchMode { get; }
128128

129-
public string Name { get; }
129+
public string Alias { get; }
130130

131-
public ServiceKey(Type httpApiType, TypeMatchMode typeMatchMode, string name)
131+
public ServiceKey(Type httpApiType, TypeMatchMode typeMatchMode, string alias)
132132
{
133133
this.HttpApiType = httpApiType;
134134
this.TypeMatchMode = typeMatchMode;
135-
this.Name = name;
135+
this.Alias = alias;
136136
}
137137

138138
public bool Equals(ServiceKey? other)
139139
{
140140
return other != null &&
141141
this.HttpApiType == other.HttpApiType &&
142142
this.TypeMatchMode == other.TypeMatchMode &&
143-
this.Name == other.Name;
143+
this.Alias == other.Alias;
144144
}
145145

146146
public override bool Equals(object? obj)
@@ -150,7 +150,7 @@ public override bool Equals(object? obj)
150150

151151
public override int GetHashCode()
152152
{
153-
this.hashCode ??= HashCode.Combine(this.HttpApiType, this.TypeMatchMode, this.Name);
153+
this.hashCode ??= HashCode.Combine(this.HttpApiType, this.TypeMatchMode, this.Alias);
154154
return this.hashCode.Value;
155155
}
156156
}

0 commit comments

Comments
 (0)