コード例 #1
0
 /// <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));
 }
コード例 #2
0
        private HttpMessageHandler GetHttpHandler(IHttpApi ihttpApi)
        {
            var httpApi     = ihttpApi as HttpApi;
            var interceptor = httpApi.ApiInterceptor as ApiInterceptor;

            return(interceptor.HttpApiConfig.HttpHandler.SourceHanlder);
        }
コード例 #3
0
        private HttpApiConfig GetHttpApiConfig(IHttpApi httpApi)
        {
            var httpApiClient = httpApi as HttpApiClient;
            var interceptor   = httpApiClient.ApiInterceptor as ApiInterceptor;

            return(interceptor.HttpApiConfig);
        }
コード例 #4
0
ファイル: HelpApi.cs プロジェクト: yonglehou/TheBorg
 public HelpApi(
     IHttpApi httpApi,
     IMessageApi messageApi,
     IPluginApi pluginApi)
 {
     _httpApi    = httpApi;
     _messageApi = messageApi;
     _pluginApi  = pluginApi;
 }
コード例 #5
0
ファイル: HelpApi.cs プロジェクト: rasmus/TheBorg
 public HelpApi(
     IHttpApi httpApi,
     IMessageApi messageApi,
     IPluginApi pluginApi)
 {
     _httpApi = httpApi;
     _messageApi = messageApi;
     _pluginApi = pluginApi;
 }
コード例 #6
0
ファイル: JokesApi.cs プロジェクト: rasmus/TheBorg
 public JokesApi(
     IConfigApi configApi,
     IHttpApi httpApi,
     IMessageApi messageApi)
 {
     _configApi = configApi;
     _httpApi = httpApi;
     _messageApi = messageApi;
 }
コード例 #7
0
 public JokesApi(
     IConfigApi configApi,
     IHttpApi httpApi,
     IMessageApi messageApi)
 {
     _configApi  = configApi;
     _httpApi    = httpApi;
     _messageApi = messageApi;
 }
コード例 #8
0
 /// <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
     };
 }
コード例 #9
0
 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)));
 }
コード例 #10
0
        /// <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);
        }
コード例 #11
0
        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);
            });
        }
コード例 #12
0
 /// <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);
 }
コード例 #13
0
        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);
        }
コード例 #14
0
 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;
 }
コード例 #15
0
        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));
            });
        }
コード例 #16
0
        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));
        }
コード例 #17
0
 /// <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));
 }
コード例 #18
0
 private bool IsHttpApiConfigEquals(IHttpApi x, IHttpApi y)
 {
     return(GetHttpApiConfig(x) == GetHttpApiConfig(y));
 }
コード例 #19
0
 public void Register(IHttpApi api)
 {
 }
コード例 #20
0
 /// <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)
 {
 }
コード例 #21
0
 private bool IsHttpHandlerEquals(IHttpApi x, IHttpApi y)
 {
     return(GetHttpHandler(x) == GetHttpHandler(y));
 }
コード例 #22
0
 /// <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);
 }
コード例 #23
0
 /// <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));
 }