示例#1
0
 protected override void ApiRegistration(IRpcApi api)
 {
     foreach (var route in _routes)
     {
         api.Method.Get(route, () => route);
     }
 }
        protected override void ApiRegistration(IRpcApi api)
        {
            var filter = new FinalizeFilterTest.FinalizeFilter(() => _finalizedCalled = true);

            api.ApplyFilter(method => context => filter);
            api.Method.Get("/test", () => new { result = 123 });
        }
示例#3
0
        /// <summary>
        /// Adds IRequestExecutionContextFeature to HttpContext.
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static IRpcApi UseRequestExecutionContextFeature(this IRpcApi configuration)
        {
            configuration.Environment.Action <RequestExecutionContextFeatureConfiguration>(featureConfiguration =>
                                                                                           featureConfiguration.FeatureEnabled = true);

            return(configuration);
        }
        /// <summary>
        /// Apply filter that locates validator for models
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static IRpcApi ApplyFluentValidation(this IRpcApi configuration)
        {
            var filterProvider = new ValidationFilterProvider(
                configuration.AppServices.GetRequiredService <IErrorWrappingService>());

            return(configuration.ApplyFilter(filterProvider.GetFilters));
        }
示例#5
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Expose <AttributedIntMathService>();
     api.Method.Get("/noparams2", () =>
                    new GenericResult <int> {
         Result = 10
     });
 }
示例#6
0
        /// <summary>
        /// Expose types in the same assembly and namespace as T
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="configuration"></param>
        /// <param name="includeSubnamespaces"></param>
        /// <returns></returns>
        public static ITypeSetExposureConfiguration ExposeNamespaceContaining <T>(this IRpcApi configuration, bool includeSubnamespaces = true)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            return(configuration.Expose(typeof(T).GetTypeInfo().Assembly.ExportedTypes.Where(TypesThat.AreInTheSameNamespaceAs <T>(includeSubnamespaces))));
        }
示例#7
0
        void IRpcModule.Configure(IRpcApi api)
        {
            api.ApplyFilter(ApplyFilter);

            Configure(api);

            if (AutoRegister)
            {
                AutoRegisterMethods(api);
            }
        }
示例#8
0
        protected override void ApiRegistration(IRpcApi api)
        {
            api.Method.Get("/Personnel",
                           () => new List <PersonnelModel> {
                new PersonnelModel {
                    PersonnelId = 1, Name = "Ted Smith"
                }
            });

            api.Method.Get("/Personnel/{personnelId}", (int personnelId) => new PersonnelModel {
                PersonnelId = personnelId, Name = "Test"
            });
        }
示例#9
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.ApplyFluentValidation();
     api.Expose <Service>();
 }
示例#10
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Method.Post(_simpleBodyPath, (RequestBody body) => body.ValueA + body.ValueB);
 }
示例#11
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Method.Get("/test", (int count) => count);
 }
示例#12
0
        protected override void ApiRegistration(IRpcApi api)
        {
            api.UseRequestExecutionContextFeature();

            api.Expose <Service>();
        }
示例#13
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Authorize();
     api.Method.Get("/test", () => "success");
 }
示例#14
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Expose <Service>();
 }
示例#15
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Assets("/jack.txt", "resource.txt");
 }
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Method.Get("/TestPath/{doubleParam}", (double doubleParam) => doubleParam);
 }
示例#17
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Header("Cache-Control", _cacheControl);
     api.Method.Get("/test", () => DateTime.Now.ToString());
 }
示例#18
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Expose <AttributedIntMathService>();
     api.Method.Get("/stringtest/{stringValue}", (string stringValue) => stringValue + " Hello World!");
 }
示例#19
0
        public static void DefaultConfigurationAction(IRpcApi api)
        {
            api.ExposeModules();

            api.Expose(Assembly.GetEntryAssembly().ExportedTypes).OnlyAttributed();
        }
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Assets("/", "wwwroot");
 }
示例#21
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Method.Get("/OneInt/{arg1}", (int arg1) => arg1);
     api.Method.Get("/TwoInt/{arg1}/{arg2}", (int arg1, int arg2) => arg1 + arg2);
     api.Method.Get("/ThreeInt/{arg1}/{arg2}/{arg3}", (int arg1, int arg2, int arg3) => arg1 + arg2 + arg3);
 }
示例#22
0
 protected override void ApiRegistration(IRpcApi api)
 {
 }
示例#23
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.ApplyFilter <Filter>();
     api.Expose <Service>();
 }
示例#24
0
 /// <summary>
 /// Register public methods
 /// </summary>
 /// <param name="api"></param>
 protected virtual void AutoRegisterMethods(IRpcApi api) => api.Expose(GetType()).Activation(context => this);
 protected override void ApiRegistration(IRpcApi api)
 {
     api.DefaultHttpMethod(ExposeDefaultMethod.PostOnly);
     api.Expose <Service>();
 }
示例#26
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="api"></param>
 protected virtual void Configure(IRpcApi api)
 {
 }
示例#27
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Environment.EnableCompression();
     api.Expose <Service>();
 }
示例#28
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Method.Get("/TestPath/{intParam}", (int intParam) => intParam);
 }
示例#29
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.ExposeModule <IntMathModule>();
 }
示例#30
0
 protected override void ApiRegistration(IRpcApi api)
 {
     api.Method.Get("/OneString/{arg1}", (string arg1) => arg1 + _postFix);
     api.Method.Get("/TwoString/{arg1}/{arg2}", (string arg1, string arg2) => arg1 + arg2 + _postFix);
     api.Method.Get("/ThreeString/{arg1}/{arg2}/{arg3}", (string arg1, string arg2, string arg3) => arg1 + arg2 + arg3 + _postFix);
 }