diff --git a/src/Kyoo.Authentication/Views/AuthApi.cs b/src/Kyoo.Authentication/Views/AuthApi.cs index b2f88e92..bab8e0bb 100644 --- a/src/Kyoo.Authentication/Views/AuthApi.cs +++ b/src/Kyoo.Authentication/Views/AuthApi.cs @@ -40,7 +40,7 @@ namespace Kyoo.Authentication.Views /// Sign in, Sign up or refresh tokens. /// [ApiController] - [Route("api/auth")] + [Route("auth")] [ApiDefinition("Authentication", Group = UsersGroup)] public class AuthApi : ControllerBase { diff --git a/src/Kyoo.Core/Views/Admin/ConfigurationApi.cs b/src/Kyoo.Core/Views/Admin/ConfigurationApi.cs index a7a42bab..b21a59cb 100644 --- a/src/Kyoo.Core/Views/Admin/ConfigurationApi.cs +++ b/src/Kyoo.Core/Views/Admin/ConfigurationApi.cs @@ -31,8 +31,8 @@ namespace Kyoo.Core.Api /// /// An API to retrieve or edit configuration settings /// - [Route("api/configuration")] - [Route("api/config", Order = AlternativeRoute)] + [Route("configuration")] + [Route("config", Order = AlternativeRoute)] [ApiController] [PartialPermission("Configuration", Group = Group.Admin)] [ApiDefinition("Configuration", Group = AdminGroup)] diff --git a/src/Kyoo.Core/Views/Admin/TaskApi.cs b/src/Kyoo.Core/Views/Admin/TaskApi.cs index dc338c24..96d42b01 100644 --- a/src/Kyoo.Core/Views/Admin/TaskApi.cs +++ b/src/Kyoo.Core/Views/Admin/TaskApi.cs @@ -32,8 +32,8 @@ namespace Kyoo.Core.Api /// /// An endpoint to list and run tasks in the background. /// - [Route("api/tasks")] - [Route("api/task", Order = AlternativeRoute)] + [Route("tasks")] + [Route("task", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission("Task", Group = Group.Admin)] diff --git a/src/Kyoo.Core/Views/Helper/BaseApi.cs b/src/Kyoo.Core/Views/Helper/BaseApi.cs index 6fd97920..4a55cfd9 100644 --- a/src/Kyoo.Core/Views/Helper/BaseApi.cs +++ b/src/Kyoo.Core/Views/Helper/BaseApi.cs @@ -19,11 +19,8 @@ using System; using System.Collections.Generic; using System.Linq; -using Kyoo.Abstractions; using Kyoo.Abstractions.Models; using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; namespace Kyoo.Core.Api { diff --git a/src/Kyoo.Core/Views/Helper/Serializers/JsonOptions.cs b/src/Kyoo.Core/Views/Helper/Serializers/JsonOptions.cs index 0372b568..796f9f70 100644 --- a/src/Kyoo.Core/Views/Helper/Serializers/JsonOptions.cs +++ b/src/Kyoo.Core/Views/Helper/Serializers/JsonOptions.cs @@ -34,30 +34,21 @@ namespace Kyoo.Core.Api /// private readonly IHttpContextAccessor _httpContextAccessor; - /// - /// The options containing the public URL of kyoo, given to . - /// - private readonly IOptions _options; - /// /// Create a new . /// /// /// The http context accessor given to the . /// - /// - /// The options containing the public URL of kyoo, given to . - /// - public JsonOptions(IHttpContextAccessor httpContextAccessor, IOptions options) + public JsonOptions(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; - _options = options; } /// public void Configure(MvcNewtonsoftJsonOptions options) { - options.SerializerSettings.ContractResolver = new JsonSerializerContract(_httpContextAccessor, _options); + options.SerializerSettings.ContractResolver = new JsonSerializerContract(_httpContextAccessor); options.SerializerSettings.Converters.Add(new PeopleRoleConverter()); } } diff --git a/src/Kyoo.Core/Views/Helper/Serializers/JsonSerializerContract.cs b/src/Kyoo.Core/Views/Helper/Serializers/JsonSerializerContract.cs index b607cbf7..a309478f 100644 --- a/src/Kyoo.Core/Views/Helper/Serializers/JsonSerializerContract.cs +++ b/src/Kyoo.Core/Views/Helper/Serializers/JsonSerializerContract.cs @@ -22,9 +22,7 @@ using System.ComponentModel; using System.Reflection; using Kyoo.Abstractions.Models; using Kyoo.Abstractions.Models.Attributes; -using Kyoo.Core.Models.Options; using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Options; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; @@ -43,20 +41,13 @@ namespace Kyoo.Core.Api /// private readonly IHttpContextAccessor _httpContextAccessor; - /// - /// The options containing the public URL of kyoo. - /// - private readonly IOptions _options; - /// /// Create a new . /// /// The http context accessor to use. - /// The options containing the public URL of kyoo. - public JsonSerializerContract(IHttpContextAccessor httpContextAccessor, IOptions options) + public JsonSerializerContract(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; - _options = options; } /// @@ -153,7 +144,7 @@ namespace Kyoo.Core.Api string type = target is ICustomTypeDescriptor descriptor ? descriptor.GetClassName() : target.GetType().Name; - return new Uri($"/api/{type}/{slug}/{Images.ImageName[_imageIndex]}".ToLowerInvariant()) + return new Uri($"/{type}/{slug}/{Images.ImageName[_imageIndex]}".ToLowerInvariant()) .ToString(); } } diff --git a/src/Kyoo.Core/Views/Metadata/GenreApi.cs b/src/Kyoo.Core/Views/Metadata/GenreApi.cs index 5d3cbf7f..6d788cd8 100644 --- a/src/Kyoo.Core/Views/Metadata/GenreApi.cs +++ b/src/Kyoo.Core/Views/Metadata/GenreApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/genres")] - [Route("api/genre", Order = AlternativeRoute)] + [Route("genres")] + [Route("genre", Order = AlternativeRoute)] [ApiController] [PartialPermission(nameof(Genre))] [ApiDefinition("Genres", Group = MetadataGroup)] diff --git a/src/Kyoo.Core/Views/Metadata/ProviderApi.cs b/src/Kyoo.Core/Views/Metadata/ProviderApi.cs index 6f9894d5..97369ddf 100644 --- a/src/Kyoo.Core/Views/Metadata/ProviderApi.cs +++ b/src/Kyoo.Core/Views/Metadata/ProviderApi.cs @@ -30,8 +30,8 @@ namespace Kyoo.Core.Api /// Providers are links to external websites or database. /// They are mostly linked to plugins that provide metadata from those websites. /// - [Route("api/providers")] - [Route("api/provider", Order = AlternativeRoute)] + [Route("providers")] + [Route("provider", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission(nameof(Provider))] diff --git a/src/Kyoo.Core/Views/Metadata/StaffApi.cs b/src/Kyoo.Core/Views/Metadata/StaffApi.cs index aea11a4e..61187855 100644 --- a/src/Kyoo.Core/Views/Metadata/StaffApi.cs +++ b/src/Kyoo.Core/Views/Metadata/StaffApi.cs @@ -35,8 +35,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple staff member. /// - [Route("api/staff")] - [Route("api/people", Order = AlternativeRoute)] + [Route("staff")] + [Route("people", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission(nameof(People))] diff --git a/src/Kyoo.Core/Views/Metadata/StudioApi.cs b/src/Kyoo.Core/Views/Metadata/StudioApi.cs index d5274f18..9d743853 100644 --- a/src/Kyoo.Core/Views/Metadata/StudioApi.cs +++ b/src/Kyoo.Core/Views/Metadata/StudioApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/studios")] - [Route("api/studio", Order = AlternativeRoute)] + [Route("studios")] + [Route("studio", Order = AlternativeRoute)] [ApiController] [PartialPermission(nameof(Show))] [ApiDefinition("Studios", Group = MetadataGroup)] diff --git a/src/Kyoo.Core/Views/Resources/CollectionApi.cs b/src/Kyoo.Core/Views/Resources/CollectionApi.cs index 3cee88b6..a3c85aa6 100644 --- a/src/Kyoo.Core/Views/Resources/CollectionApi.cs +++ b/src/Kyoo.Core/Views/Resources/CollectionApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/collections")] - [Route("api/collection", Order = AlternativeRoute)] + [Route("collections")] + [Route("collection", Order = AlternativeRoute)] [ApiController] [PartialPermission(nameof(Collection))] [ApiDefinition("Collections", Group = ResourcesGroup)] diff --git a/src/Kyoo.Core/Views/Resources/EpisodeApi.cs b/src/Kyoo.Core/Views/Resources/EpisodeApi.cs index cd568e91..5c26ba99 100644 --- a/src/Kyoo.Core/Views/Resources/EpisodeApi.cs +++ b/src/Kyoo.Core/Views/Resources/EpisodeApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/episodes")] - [Route("api/episode", Order = AlternativeRoute)] + [Route("episodes")] + [Route("episode", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission(nameof(Episode))] diff --git a/src/Kyoo.Core/Views/Resources/LibraryApi.cs b/src/Kyoo.Core/Views/Resources/LibraryApi.cs index 4f361705..c6b785de 100644 --- a/src/Kyoo.Core/Views/Resources/LibraryApi.cs +++ b/src/Kyoo.Core/Views/Resources/LibraryApi.cs @@ -36,8 +36,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/libraries")] - [Route("api/library", Order = AlternativeRoute)] + [Route("libraries")] + [Route("library", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission(nameof(Library), Group = Group.Admin)] diff --git a/src/Kyoo.Core/Views/Resources/LibraryItemApi.cs b/src/Kyoo.Core/Views/Resources/LibraryItemApi.cs index 5318d0b5..5d068fd5 100644 --- a/src/Kyoo.Core/Views/Resources/LibraryItemApi.cs +++ b/src/Kyoo.Core/Views/Resources/LibraryItemApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// Endpoint for items that are not part of a specific library. /// An item can ether represent a collection or a show. /// - [Route("api/items")] - [Route("api/item", Order = AlternativeRoute)] + [Route("items")] + [Route("item", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission(nameof(LibraryItem))] diff --git a/src/Kyoo.Core/Views/Resources/SearchApi.cs b/src/Kyoo.Core/Views/Resources/SearchApi.cs index 3ef37a39..e8be01d2 100644 --- a/src/Kyoo.Core/Views/Resources/SearchApi.cs +++ b/src/Kyoo.Core/Views/Resources/SearchApi.cs @@ -32,7 +32,7 @@ namespace Kyoo.Core.Api /// An endpoint to search for every resources of kyoo. Searching for only a specific type of resource /// is available on the said endpoint. /// - [Route("api/search/{query}")] + [Route("search/{query}")] [ApiController] [ResourceView] [ApiDefinition("Search", Group = ResourcesGroup)] diff --git a/src/Kyoo.Core/Views/Resources/SeasonApi.cs b/src/Kyoo.Core/Views/Resources/SeasonApi.cs index 8f74a08c..fd5e1da1 100644 --- a/src/Kyoo.Core/Views/Resources/SeasonApi.cs +++ b/src/Kyoo.Core/Views/Resources/SeasonApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/seasons")] - [Route("api/season", Order = AlternativeRoute)] + [Route("seasons")] + [Route("season", Order = AlternativeRoute)] [ApiController] [PartialPermission(nameof(Season))] [ApiDefinition("Seasons", Group = ResourcesGroup)] diff --git a/src/Kyoo.Core/Views/Resources/ShowApi.cs b/src/Kyoo.Core/Views/Resources/ShowApi.cs index 23261724..bd7569d9 100644 --- a/src/Kyoo.Core/Views/Resources/ShowApi.cs +++ b/src/Kyoo.Core/Views/Resources/ShowApi.cs @@ -36,10 +36,10 @@ namespace Kyoo.Core.Api /// /// Information about one or multiple . /// - [Route("api/shows")] - [Route("api/show", Order = AlternativeRoute)] - [Route("api/movie", Order = AlternativeRoute)] - [Route("api/movies", Order = AlternativeRoute)] + [Route("shows")] + [Route("show", Order = AlternativeRoute)] + [Route("movie", Order = AlternativeRoute)] + [Route("movies", Order = AlternativeRoute)] [ApiController] [PartialPermission(nameof(Show))] [ApiDefinition("Shows", Group = ResourcesGroup)] diff --git a/src/Kyoo.Core/Views/Watch/TrackApi.cs b/src/Kyoo.Core/Views/Watch/TrackApi.cs index 60a5d0c2..d2af40dd 100644 --- a/src/Kyoo.Core/Views/Watch/TrackApi.cs +++ b/src/Kyoo.Core/Views/Watch/TrackApi.cs @@ -32,8 +32,8 @@ namespace Kyoo.Core.Api /// Information about one or multiple . /// A track contain metadata about a video, an audio or a subtitles. /// - [Route("api/tracks")] - [Route("api/track", Order = AlternativeRoute)] + [Route("tracks")] + [Route("track", Order = AlternativeRoute)] [ApiController] [ResourceView] [PartialPermission(nameof(Track))] diff --git a/src/Kyoo.Core/Views/Watch/WatchApi.cs b/src/Kyoo.Core/Views/Watch/WatchApi.cs index f72b1901..dbc539b2 100644 --- a/src/Kyoo.Core/Views/Watch/WatchApi.cs +++ b/src/Kyoo.Core/Views/Watch/WatchApi.cs @@ -34,8 +34,8 @@ namespace Kyoo.Core.Api /// It contains streams (video, audio, subtitles) information, chapters, next and previous episodes and a bit of /// information of the show. /// - [Route("api/watch")] - [Route("api/watchitem", Order = AlternativeRoute)] + [Route("watch")] + [Route("watchitem", Order = AlternativeRoute)] [ApiController] [ApiDefinition("Watch Items", Group = WatchGroup)] public class WatchApi : ControllerBase diff --git a/tests/robot/rest.resource b/tests/robot/rest.resource index c0f31069..c4820ca3 100644 --- a/tests/robot/rest.resource +++ b/tests/robot/rest.resource @@ -1,4 +1,4 @@ *** Settings *** Documentation Common things to handle rest requests -Library REST http://localhost:5000/api +Library REST http://localhost:5000