Implement unified API controller pattern

This commit is contained in:
2020-02-29 14:13:46 +01:00
parent e49b6791a0
commit eee5661f9a
16 changed files with 414 additions and 138 deletions

View File

@@ -0,0 +1,12 @@
namespace EstusShots.Shared.Interfaces
{
/// <summary>
/// Marks a class that can be used as a parameter for API requests
/// </summary>
public interface IApiParameter { }
/// <summary>
/// Marks a class as response type that is returned from API requests
/// </summary>
public interface IApiResponse { }
}

View File

@@ -0,0 +1,23 @@
using System.Threading.Tasks;
using EstusShots.Shared.Models;
using EstusShots.Shared.Models.Parameters;
namespace EstusShots.Shared.Interfaces
{
/// <summary>
/// Access many seasons with one request
/// </summary>
public interface ISeasonsController
{
/// <summary>
/// Get a list of all seasons in the system
/// </summary>
/// <param name="parameter"></param>
/// <returns></returns>
Task<ApiResponse<GetSeasonsResponse>> GetSeasons(GetSeasonsParameter parameter);
Task<ApiResponse<GetSeasonResponse>> GetSeason(GetSeasonParameter parameter);
Task<ApiResponse<SaveSeasonResponse>> SaveSeason(SaveSeasonParameter parameter);
}
}