WebApiClient
WebApiClient copied to clipboard
如何将IHttpApi接口定义中的参数传给TokenProvider
需求是需要根据appName参数动态切换token。 目前是想通过在TokenProvider中获取参数值后去请求token,但是ApiRequestContext和ApiParametersContext都无法通过依赖注入获取到。
需要如何实现此功能
为接口注册TokenProvider时,可以指定alias值,同时[OAuthTokenAttribute]也有AliasParameterName参数值用于设置alias取值的参数
[OAuthToken("myTokenProvider")]
public interface IMyApi : IHttpApi
{
Task<MyResult> GetResultAsync(string appName, string id);
}
services.AddTokenProvider<IMyApi, MyTokenProvider>("myTokenProvider");
这样吗?
和我的需求不太相符。
我的需求大概是这样的。 定义了appName和apiKey的映射字典
"ApiKeys": {
"testApp": "xxxxxxxxx",
"prodApp": "xxxxxxxx",
"preApp": "xxxxxxxx"
}
然后在调用IMyApi.GetResultAsync时传入appName,比如传入的是testApp,则设置Authorization请求头的值为对应的apiKey