Я создаю веб-API с использованием Microsoft 2.2 на основе документации Microsoft.Все работало как ожидалось.
После обновления до .net Core 3.0 Preview 2 все конечные точки возвращаются [406: Недопустимо].
Что-то не хватает, но пока я не был 'не в состоянии понять, чего не хватает.Следующий код аналогичен ядру .net 2.2.
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
//.ConfigureKestrel((context, options) => { });
}
}
Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// Dependency Injection - Services
services.AddSingleton<IXXXService, XXXService>();
services.AddMvc();
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder => builder.WithOrigins("*").AllowAnyHeader().AllowAnyMethod());
});
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
c.EnableAnnotations();
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
app.UseCors("AllowAll");
app.UseSwagger();
app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API"); });
}
}
XXXController.cs
[ApiController]
[Route("api/xxx")]
public class XXXController : BaseController
{
private readonly IXXXService _service;
public XXXController(IXXXService service)
{
_service = service;
}
[HttpGet]
[Produces("application/json", Type = typeof(PagedDto<XXX>))]
[SwaggerOperation(
Summary = "Gets all the XXX",
Description = "Requires admin privileges",
OperationId = "GetAllXXX",
Tags = new[] {"XXX"}
)]
public IActionResult GetAllXXX([FromQuery] PagingDto pagging)
{
return Ok(_service.GetAllXXX(pagging));
}
}