/// <summary> /// 验证请求结果 /// </summary> /// <param name="httpHandler"></param> /// <param name="RouteData"></param> /// <returns></returns> internal static bool Initialize(IHttpApi httpHandler, AshxRouteData RouteData) { httpHandler.SetRouteData(RouteData); RouteData.HttpContext.Response.AppendHeader(RouteData.GetAshx.IsTask ? AshxVersionHeaderAsyncName : AshxVersionHeaderName, AshxVersion); //AshxExtension.CrossDomain(RouteData.HttpContext.Response, RouteData.GetAshx); return(httpHandler.Initialize(RouteData.GetAshx)); }
private HttpMessageHandler GetHttpHandler(IHttpApi ihttpApi) { var httpApi = ihttpApi as HttpApi; var interceptor = httpApi.ApiInterceptor as ApiInterceptor; return(interceptor.HttpApiConfig.HttpHandler.SourceHanlder); }
private HttpApiConfig GetHttpApiConfig(IHttpApi httpApi) { var httpApiClient = httpApi as HttpApiClient; var interceptor = httpApiClient.ApiInterceptor as ApiInterceptor; return(interceptor.HttpApiConfig); }
public HelpApi( IHttpApi httpApi, IMessageApi messageApi, IPluginApi pluginApi) { _httpApi = httpApi; _messageApi = messageApi; _pluginApi = pluginApi; }
public JokesApi( IConfigApi configApi, IHttpApi httpApi, IMessageApi messageApi) { _configApi = configApi; _httpApi = httpApi; _messageApi = messageApi; }
/// <summary> /// 请求Api的上下文 /// </summary> /// <param name="httpApi">httpApi代理类实例</param> /// <param name="httpApiConfig">关联的HttpApiConfig</param> /// <param name="apiActionDescriptor">关联的ApiActionDescriptor</param> /// <exception cref="ArgumentNullException"></exception> public ApiActionContext(IHttpApi httpApi, HttpApiConfig httpApiConfig, ApiActionDescriptor apiActionDescriptor) { this.HttpApi = httpApi; this.HttpApiConfig = httpApiConfig ?? throw new ArgumentNullException(nameof(httpApiConfig)); this.ApiActionDescriptor = apiActionDescriptor ?? throw new ArgumentNullException(nameof(apiActionDescriptor)); this.RequestMessage = new HttpApiRequestMessage { RequestUri = httpApiConfig.HttpHost }; }
public void Register(IHttpApi api) { api.Bind("/source?host=a&path=b&id=c", Verb.Get) .To(new { host = string.Empty, path = string.Empty, id = string.Empty }, x => GetRequestSource(x.host, x.path, Guid.Parse(x.id))); }
/// <summary> /// 初始化 /// </summary> /// <param name="httpHandler">构造的对应实现</param> /// <param name="objs">数据</param> internal static Task StartAshx(IHttpApi httpHandler, object[] objs) { //httpHandler.SetRouteData(RouteData); //RouteData.HttpContext.Response.AppendHeader(AshxVersionHeaderName, AshxVersion); using (httpHandler) { httpHandler.Request(objs); } return(Task.CompletedTask); }
public void Register(IHttpApi api) { api.Bind("/logs/features/map/{x}").To(10, async x => { var data = await Read(); var map = await data.AsQueryable().CreatePipeline().ToSofm(x).ExecuteAsync(); return(map); }); }
/// <summary> /// 请求Api的上下文 /// </summary> /// <param name="httpApi">httpApi代理类实例</param> /// <param name="httpApiConfig">关联的HttpApiConfig</param> /// <param name="apiActionDescriptor">关联的ApiActionDescriptor</param> /// <exception cref="ArgumentNullException"></exception> public ApiActionContext(IHttpApi httpApi, HttpApiConfig httpApiConfig, ApiActionDescriptor apiActionDescriptor) { this.HttpApi = httpApi; this.HttpApiConfig = httpApiConfig ?? throw new ArgumentNullException(nameof(httpApiConfig)); this.ApiActionDescriptor = apiActionDescriptor ?? throw new ArgumentNullException(nameof(apiActionDescriptor)); this.RequestMessage = new HttpApiRequestMessage { RequestUri = httpApiConfig.HttpHost }; this.RequestMessage.Headers.ExpectContinue = false; this.RequestMessage.Headers.UserAgent.Add(HttpHandlerProvider.DefaultUserAgent); }
public void Register(IHttpApi api) { api.Bind("/{host}?search=x", Verb.Get, r => r.RequestUri.Scheme == Uri.UriSchemeHttp) .To(new { host = string.Empty, search = string.Empty }, x => { var results = GetIndex(x.host).Search(x.search.ToLower()); return(Task.FromResult(results)); }); api.Bind("/logs/search?q=x", Verb.Get, r => r.RequestUri.Scheme == Uri.UriSchemeHttp) .To(string.Empty, QueryAsync); }
public PluginRegistration( Uri uri, Token token, ICommandApi commandApi, IMessageApi messageApi, IHttpApi httpApi, IPluginApi pluginApi, IConfigApi configApi, ISettingApi settingApi) { Uri = uri; Token = token; CommandApi = commandApi; MessageApi = messageApi; HttpApi = httpApi; PluginApi = pluginApi; ConfigApi = configApi; SettingApi = settingApi; }
protected override void Setup(IOwinApplication host) { base.Setup(host); _api = _host.CreateHttpApi(new JsonSerialiser()); _api.AddComponent(c => { Console.WriteLine(c.RequestUri); return(Task.FromResult(0)); }, OwinPipelineStage.Authenticate); foreach (var analyserIFace in _proxy.AnalyserEngine.Analysers.Where(a => a is IHasHttpInterface).Cast <IHasHttpInterface>()) { analyserIFace.Register(_api); } _api.AddErrorHandler((c, e) => { c.Response.CreateTextResponse().Write(e.Message); return(Task.FromResult(true)); }); }
public void Register(IHttpApi api) { api.Bind("/", Verb.Get) .To(false, x => Task.FromResult(ListHosts().Items.ToList())); api.Bind("/logs/list/{x}", Verb.Get) .To((long)0, x => GetRecentRequests(x)); api.Bind("/logs/url-filter/{pos}?path=y", Verb.Get) .To(new { pos = (long)0, path = string.Empty }, x => GetRequestsByPartialUrl(x.path, x.pos)); api.Bind("/logs/tree/{x}", Verb.Get) .To((long)0, x => GetRequestTree(x)); api.Bind("/logs/histogram/time-series/all/{x}", Verb.Get) .To(1000d, x => GetHistogram(x)); api.Bind("/logs/histogram/time-series/by-mime/{x}", Verb.Get) .To(1000d, x => GetHistogramGroupedByMime(x)); }
/// <summary> /// 创建请求上下文 /// </summary> /// <param name="httpApi"></param> /// <param name="apiActionDescriptor"></param> /// <returns></returns> protected override ApiActionContext CreateApiActionContext(IHttpApi httpApi, ApiActionDescriptor apiActionDescriptor) { return(new EasyCachingApiActionContext(httpApi, this.HttpApiConfig, apiActionDescriptor)); }
private bool IsHttpApiConfigEquals(IHttpApi x, IHttpApi y) { return(GetHttpApiConfig(x) == GetHttpApiConfig(y)); }
public void Register(IHttpApi api) { }
/// <summary> /// EasyCaching的请求上下文 /// </summary> /// <param name="httpApi"></param> /// <param name="httpApiConfig"></param> /// <param name="apiActionDescriptor"></param> public EasyCachingApiActionContext(IHttpApi httpApi, HttpApiConfig httpApiConfig, ApiActionDescriptor apiActionDescriptor) : base(httpApi, httpApiConfig, apiActionDescriptor) { }
private bool IsHttpHandlerEquals(IHttpApi x, IHttpApi y) { return(GetHttpHandler(x) == GetHttpHandler(y)); }
/// <summary> /// 请求Api的上下文 /// </summary> /// <param name="httpApi">httpApi代理类实例</param> /// <param name="httpApiConfig">关联的HttpApiConfig</param> /// <param name="apiActionDescriptor">关联的ApiActionDescriptor</param> /// <exception cref="ArgumentNullException"></exception> public TestActionContext(IHttpApi httpApi, HttpApiConfig httpApiConfig, ApiActionDescriptor apiActionDescriptor) : base(httpApi, httpApiConfig, apiActionDescriptor) { this.ResponseMessage = new HttpResponseMessage(System.Net.HttpStatusCode.OK); }
/// <summary> /// 返回创建ApiActionContext新实例 /// </summary> /// <param name="httpApi">httpApi代理类实例</param> /// <param name="apiActionDescriptor">api的描述</param> /// <returns></returns> protected virtual ApiActionContext CreateApiActionContext(IHttpApi httpApi, ApiActionDescriptor apiActionDescriptor) { return(new ApiActionContext(httpApi, this.HttpApiConfig, apiActionDescriptor)); }