示例#1
0
        public ApiServer(HttpServer server, HttpRouter router)
        {
            m_Server = server;
            m_Router = router;

            // Bind router to the server
            m_Server.HandleRequest = m_Router.ProcessRequest;
        }
示例#2
0
        private static void Weave(HttpRouter router)
        {
            var types = ScriptCompiler.Libraries.SelectMany(library => library.Types);

            foreach (var type in types)
            {
                var attr = type.GetCustomAttributes <PathAttribute>(false).FirstOrDefault();

                if (attr != null)
                {
                    router.RegisterController(new Route(attr.Path), type);
                }
            }
        }
示例#3
0
        private static void EventSink_ServerStarted()
        {
            if (!Enabled)
            {
                return;
            }

            var httpServer = new HttpServer(Domain, Port);
            var httpRouter = new HttpRouter();

            Weave(httpRouter);

            var apiServer = new ApiServer(httpServer, httpRouter);

            apiServer.Start();
        }