mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-07 10:14:13 -04:00
Remove the /api prefix
This commit is contained in:
parent
f6557e6bbc
commit
25ceac2ef4
@ -40,7 +40,7 @@ namespace Kyoo.Authentication.Views
|
||||
/// Sign in, Sign up or refresh tokens.
|
||||
/// </summary>
|
||||
[ApiController]
|
||||
[Route("api/auth")]
|
||||
[Route("auth")]
|
||||
[ApiDefinition("Authentication", Group = UsersGroup)]
|
||||
public class AuthApi : ControllerBase
|
||||
{
|
||||
|
@ -31,8 +31,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// An API to retrieve or edit configuration settings
|
||||
/// </summary>
|
||||
[Route("api/configuration")]
|
||||
[Route("api/config", Order = AlternativeRoute)]
|
||||
[Route("configuration")]
|
||||
[Route("config", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[PartialPermission("Configuration", Group = Group.Admin)]
|
||||
[ApiDefinition("Configuration", Group = AdminGroup)]
|
||||
|
@ -32,8 +32,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// An endpoint to list and run tasks in the background.
|
||||
/// </summary>
|
||||
[Route("api/tasks")]
|
||||
[Route("api/task", Order = AlternativeRoute)]
|
||||
[Route("tasks")]
|
||||
[Route("task", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission("Task", Group = Group.Admin)]
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -34,30 +34,21 @@ namespace Kyoo.Core.Api
|
||||
/// </summary>
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
|
||||
/// <summary>
|
||||
/// The options containing the public URL of kyoo, given to <see cref="JsonSerializerContract"/>.
|
||||
/// </summary>
|
||||
private readonly IOptions<BasicOptions> _options;
|
||||
|
||||
/// <summary>
|
||||
/// Create a new <see cref="JsonOptions"/>.
|
||||
/// </summary>
|
||||
/// <param name="httpContextAccessor">
|
||||
/// The http context accessor given to the <see cref="JsonSerializerContract"/>.
|
||||
/// </param>
|
||||
/// <param name="options">
|
||||
/// The options containing the public URL of kyoo, given to <see cref="JsonSerializerContract"/>.
|
||||
/// </param>
|
||||
public JsonOptions(IHttpContextAccessor httpContextAccessor, IOptions<BasicOptions> options)
|
||||
public JsonOptions(IHttpContextAccessor httpContextAccessor)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_options = options;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Configure(MvcNewtonsoftJsonOptions options)
|
||||
{
|
||||
options.SerializerSettings.ContractResolver = new JsonSerializerContract(_httpContextAccessor, _options);
|
||||
options.SerializerSettings.ContractResolver = new JsonSerializerContract(_httpContextAccessor);
|
||||
options.SerializerSettings.Converters.Add(new PeopleRoleConverter());
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
/// </summary>
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
|
||||
/// <summary>
|
||||
/// The options containing the public URL of kyoo.
|
||||
/// </summary>
|
||||
private readonly IOptions<BasicOptions> _options;
|
||||
|
||||
/// <summary>
|
||||
/// Create a new <see cref="JsonSerializerContract"/>.
|
||||
/// </summary>
|
||||
/// <param name="httpContextAccessor">The http context accessor to use.</param>
|
||||
/// <param name="options">The options containing the public URL of kyoo.</param>
|
||||
public JsonSerializerContract(IHttpContextAccessor httpContextAccessor, IOptions<BasicOptions> options)
|
||||
public JsonSerializerContract(IHttpContextAccessor httpContextAccessor)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_options = options;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -34,8 +34,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Genre"/>.
|
||||
/// </summary>
|
||||
[Route("api/genres")]
|
||||
[Route("api/genre", Order = AlternativeRoute)]
|
||||
[Route("genres")]
|
||||
[Route("genre", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[PartialPermission(nameof(Genre))]
|
||||
[ApiDefinition("Genres", Group = MetadataGroup)]
|
||||
|
@ -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.
|
||||
/// </summary>
|
||||
[Route("api/providers")]
|
||||
[Route("api/provider", Order = AlternativeRoute)]
|
||||
[Route("providers")]
|
||||
[Route("provider", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission(nameof(Provider))]
|
||||
|
@ -35,8 +35,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple staff member.
|
||||
/// </summary>
|
||||
[Route("api/staff")]
|
||||
[Route("api/people", Order = AlternativeRoute)]
|
||||
[Route("staff")]
|
||||
[Route("people", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission(nameof(People))]
|
||||
|
@ -34,8 +34,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Studio"/>.
|
||||
/// </summary>
|
||||
[Route("api/studios")]
|
||||
[Route("api/studio", Order = AlternativeRoute)]
|
||||
[Route("studios")]
|
||||
[Route("studio", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[PartialPermission(nameof(Show))]
|
||||
[ApiDefinition("Studios", Group = MetadataGroup)]
|
||||
|
@ -34,8 +34,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Collection"/>.
|
||||
/// </summary>
|
||||
[Route("api/collections")]
|
||||
[Route("api/collection", Order = AlternativeRoute)]
|
||||
[Route("collections")]
|
||||
[Route("collection", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[PartialPermission(nameof(Collection))]
|
||||
[ApiDefinition("Collections", Group = ResourcesGroup)]
|
||||
|
@ -34,8 +34,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Episode"/>.
|
||||
/// </summary>
|
||||
[Route("api/episodes")]
|
||||
[Route("api/episode", Order = AlternativeRoute)]
|
||||
[Route("episodes")]
|
||||
[Route("episode", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission(nameof(Episode))]
|
||||
|
@ -36,8 +36,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Library"/>.
|
||||
/// </summary>
|
||||
[Route("api/libraries")]
|
||||
[Route("api/library", Order = AlternativeRoute)]
|
||||
[Route("libraries")]
|
||||
[Route("library", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission(nameof(Library), Group = Group.Admin)]
|
||||
|
@ -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.
|
||||
/// </summary>
|
||||
[Route("api/items")]
|
||||
[Route("api/item", Order = AlternativeRoute)]
|
||||
[Route("items")]
|
||||
[Route("item", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission(nameof(LibraryItem))]
|
||||
|
@ -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.
|
||||
/// </summary>
|
||||
[Route("api/search/{query}")]
|
||||
[Route("search/{query}")]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[ApiDefinition("Search", Group = ResourcesGroup)]
|
||||
|
@ -34,8 +34,8 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Season"/>.
|
||||
/// </summary>
|
||||
[Route("api/seasons")]
|
||||
[Route("api/season", Order = AlternativeRoute)]
|
||||
[Route("seasons")]
|
||||
[Route("season", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[PartialPermission(nameof(Season))]
|
||||
[ApiDefinition("Seasons", Group = ResourcesGroup)]
|
||||
|
@ -36,10 +36,10 @@ namespace Kyoo.Core.Api
|
||||
/// <summary>
|
||||
/// Information about one or multiple <see cref="Show"/>.
|
||||
/// </summary>
|
||||
[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)]
|
||||
|
@ -32,8 +32,8 @@ namespace Kyoo.Core.Api
|
||||
/// Information about one or multiple <see cref="Track"/>.
|
||||
/// A track contain metadata about a video, an audio or a subtitles.
|
||||
/// </summary>
|
||||
[Route("api/tracks")]
|
||||
[Route("api/track", Order = AlternativeRoute)]
|
||||
[Route("tracks")]
|
||||
[Route("track", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ResourceView]
|
||||
[PartialPermission(nameof(Track))]
|
||||
|
@ -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.
|
||||
/// </summary>
|
||||
[Route("api/watch")]
|
||||
[Route("api/watchitem", Order = AlternativeRoute)]
|
||||
[Route("watch")]
|
||||
[Route("watchitem", Order = AlternativeRoute)]
|
||||
[ApiController]
|
||||
[ApiDefinition("Watch Items", Group = WatchGroup)]
|
||||
public class WatchApi : ControllerBase
|
||||
|
@ -1,4 +1,4 @@
|
||||
*** Settings ***
|
||||
Documentation Common things to handle rest requests
|
||||
|
||||
Library REST http://localhost:5000/api
|
||||
Library REST http://localhost:5000
|
||||
|
Loading…
x
Reference in New Issue
Block a user