.NET Core 3.1 - odpowiedzi endpointów w formacie camelCase

0

Cześć

Mam taki problem, że potrzebuję aby każdy response był w konwencji camelCase. Obecnie wszystkie wychodzą w konwencji PascalCase.
Standardowo powinny wychodzić jako camelCase, ale nie mam pojęcia co się spikowaliło.
Spójrzcie proszę na poniższy kod i podpowiedzcie jak to naprawić.

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        public void ConfigureServices(IServiceCollection services)
        {
            services.InstallServices(Configuration);
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            var basePath = Configuration.GetSection("BasePath");

            app.UsePathBase(basePath.Value);

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseCors(builder =>
            {
                builder.AllowAnyOrigin();
                builder.AllowAnyHeader();

            });

            app.UseStaticFiles();
            app.UseRouting();

            app.UseAuthentication();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

            app.UseSwagger()
               .UseSwaggerUI(options =>
               {
                   options.SwaggerEndpoint($"{basePath.Value}/swagger/v1/swagger.json", "Api V1");
               });
        }
    }
public class MvcInstaller : IInstaller
    {
        public void InstallServices(IServiceCollection services, IConfiguration configuration)
        {
            services
                .AddControllers();
            services
                .AddCors();
            services
               .AddMvc(options =>
               {
                   options.Filters.Add(typeof(ValidationFilter));
                   options.Filters.Add(typeof(ExceptionsFilter));
                   options.EnableEndpointRouting = false;

               })
               .AddFluentValidation(configuration => configuration.RegisterValidatorsFromAssemblyContaining<Startup>())
               .AddNewtonsoftJson(options =>
               {
                   options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                   options.SerializerSettings.ContractResolver = new DefaultContractResolver
                   {
                       NamingStrategy = new CamelCaseNamingStrategy
                       {
                           ProcessDictionaryKeys = true
                       }
                   };
               });
            services
                .Configure<ApiBehaviorOptions>(options =>
                {
                    options.SuppressModelStateInvalidFilter = true;
                });
        }
    }
0

Czy NewtonsoftJson jest niezbędny?

0

@Sarrus: Co w zamian i jak zrobić aby osiągnąć pożądany efekt?

1

Tutaj są rozwiązania dla System.Text.Json

https://stackoverflow.com/questions/58476681/asp-net-core-3-0-system-text-json-camel-case-serialization

Różnice pewne są, ale jeżeli nie używasz zaawansowanych funkcji Json.NET to wystarczy

0

@Sarrus: Czy dodam to co poniżej czy AddNewtonsofJson to dalej jest PascalCase.

.AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase);
0

Ktoś? Coś jeszcze podpowie? Próbowałem różnych wariantów i nic nie pomaga.

0

Ustawienie camelCase dla STJ powinno działać bez problemu - odpal sobie przykładowy projekt tylko dodaj STJ z options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;. Nie uruchamiałeś czasem apki mając podpiętą konfigurację Newtonsoft? Może gdzieś jeszcze w aplikacji jest to konfigurowane na innym poziomie? Zobacz tę witrynę, masz tutaj konfigurację pod camelCase na różne sposoby zależnie od STJ lub Newtonsoft.

https://www.iaspnetcore.com/blog/blogpost/5953e09584cd45053069b2f9

1 użytkowników online, w tym zalogowanych: 0, gości: 1