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