added support for versioning the api

This commit is contained in:
StevanFreeborn
2022-06-20 23:09:47 -05:00
parent 93087d1623
commit 5e53edafad
6 changed files with 81 additions and 17 deletions
@@ -1,15 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc;
using server.Models;
using server.Persistence.Repositories;
namespace server.Controllers
namespace server.Controllers.v1
{
[ApiController]
[ApiVersion("1.0")]
[Route("/api/episodes")]
[Produces("application/json")]
public class EpisodesController : ControllerBase
@@ -21,16 +17,15 @@ namespace server.Controllers
_episodeRepository = episodeRepository;
}
[MapToApiVersion("1.0")]
[HttpGet]
[ProducesResponseType(typeof(List<Episode>), 200)]
[ProducesResponseType(500)]
public async Task<ActionResult<List<Episode>>> GetEpisodesAsync([FromQuery]EpisodeFilter? filter)
public async Task<ActionResult<List<Episode>>> GetEpisodesAsync([FromQuery] EpisodeFilter? filter)
{
try
{
#pragma warning disable CS8604 // Possible null reference argument.
var seasons = await _episodeRepository.GetEpisodesAsync(filter);
#pragma warning restore CS8604 // Possible null reference argument.
return Ok(seasons);
}
catch (Exception e)
@@ -2,9 +2,10 @@
using server.Models;
using server.Persistence.Repositories;
namespace server.Controllers
namespace server.Controllers.v1
{
[ApiController]
[ApiVersion("1.0")]
[Route("/api/seasons")]
[Produces("application/json")]
public class SeasonsController : ControllerBase
@@ -16,6 +17,7 @@ namespace server.Controllers
_seasonRepository = seasonRepository;
}
[MapToApiVersion("1.0")]
[HttpGet]
[ProducesResponseType(typeof(List<Season>), 200)]
[ProducesResponseType(500)]
@@ -33,6 +35,7 @@ namespace server.Controllers
}
}
[MapToApiVersion("1.0")]
[HttpGet("{number:int}")]
[ProducesResponseType(typeof(Season), 200)]
[ProducesResponseType(typeof(ErrorResponse), 404)]