Swagger - nie można wybrać response content type

0

Cześć,
Tworzę pierwszy raz dokumentację do API przy użyciu swaggera, lecz nie mogę zrobić aby pojawił się select z możliwymi mime type do wyboru (jak np. JSON lub XML). Poniżej wrzucam kod.
API kontroler:

[Produces(MediaTypeNames.Application.Json, MediaTypeNames.Application.Xml)]
    [ApiController]
    [Route("[controller]")]
    public class SomeController : Controller
    {
        private readonly SomeService _someService;
        private readonly IWebHostEnvironment _webHostEnvironment;

        public MessageController(SomeService someService, IWebHostEnvironment webHostEnvironment)
        {
            _someService = someService;
            _webHostEnvironment = webHostEnvironment;
        }

        [HttpGet]
        [Route("GetAllElement")]
        public IActionResult GetAllElements()
        {
            return Ok(_someService.GetAllElements());
        }
}

Niestety na stronie swaggera nie mam do wyboru media type. Nie ma nigdzie tego dropdowna z wyborem.

Screen swaggera

Poniżej wrzucam jeszcze konfigurację swaggera:

public void ConfigureServices(IServiceCollection services)
        {
            ...
            services.AddSwaggerGen();
        }

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });

            app.UseHttpsRedirection();

            app.UseRouting();

            app.UseAuthorization();

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

Bardzo dziwne to, ale w taki sposób udało mi się sprawić, aby to działało

[HttpGet]
[Route("Test")]
[Produces("application/json", "application/xml", Type = typeof(string[]))]
public IActionResult GetAllElements()
{
    return Ok(Summaries);
}

lub

[HttpGet]
[Route("Test")]
[Produces("application/json", "application/xml")]
public IEnumerable<string> GetAllElements()
{
    return Summaries;
}
0

Tak pojawił się dropdown. Dzięki wielkie :)

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