Поэтому я создал новое решение с API. Этот API работает должным образом, как вы можете видеть в следующем запросе почтальона:
{
"Id": 1,
"Name": "Samsung"
}
Swagger создает этот фрагмент кода:
{
"id": 0,
"name": "string"
}
Эти фрагменты кода показывают бренд из моей модели.
Как я могу исправить это, чтобы Swagger принимал имена свойств, как показано в первом фрагменте кода?
Вот как я настроил API и модель:
Конфигурессервисс:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddMvc().AddJsonOptions(o =>
{
o.JsonSerializerOptions.PropertyNamingPolicy = null;
});
services.AddDbContext<PhoneCalculatorContext>(options => options.UseSqlServer(
Configuration["ConnectionStrings:DefaultConnection"]));
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});
}
Настроить:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger(c => c.SerializeAsV2 = true);
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
Модель:
public class Brand
{
public int Id { get; set; }
public string Name { get; set; }
}