diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs index f0ed4bae2c..1ce29ea5c6 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Analytics/AnalyticsControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.Analytics; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/analytics")] +[VersionedApiBackOfficeRoute("analytics")] [OpenApiTag("Analytics")] [ApiVersion("1.0")] public abstract class AnalyticsControllerBase : ManagementApiControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Culture/CultureControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Culture/CultureControllerBase.cs index 26cdb1bf5b..7ea0b77ae2 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Culture/CultureControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Culture/CultureControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.Culture; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/culture")] +[VersionedApiBackOfficeRoute("culture")] [OpenApiTag("Culture")] [ApiVersion("1.0")] public abstract class CultureControllerBase : ManagementApiControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/DictionaryControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/DictionaryControllerBase.cs index 015d0a2ffe..f102d497ac 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/DictionaryControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Dictionary/DictionaryControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.Dictionary; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/dictionary")] +[VersionedApiBackOfficeRoute("dictionary")] [OpenApiTag("Dictionary")] [ApiVersion("1.0")] // TODO: Add authentication diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Help/HelpControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Help/HelpControllerBase.cs index 07d227a23e..7220b8738b 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Help/HelpControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Help/HelpControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.Help; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/help")] +[VersionedApiBackOfficeRoute("help")] [OpenApiTag("Help")] [ApiVersion("1.0")] public abstract class HelpControllerBase : ManagementApiControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Install/ValidateDatabaseInstallController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Install/ValidateDatabaseInstallController.cs index 2866487ea1..2a12863735 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Install/ValidateDatabaseInstallController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Install/ValidateDatabaseInstallController.cs @@ -21,7 +21,7 @@ public class ValidateDatabaseInstallController : InstallControllerBase _mapper = mapper; } - [HttpPost("validateDatabase")] + [HttpPost("validate-database")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(ProblemDetails), StatusCodes.Status400BadRequest)] [ProducesResponseType(StatusCodes.Status200OK)] diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Language/LanguageControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Language/LanguageControllerBase.cs index 05495bd699..b84088906c 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Language/LanguageControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Language/LanguageControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.Language; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/language")] +[VersionedApiBackOfficeRoute("language")] [OpenApiTag("Language")] [ApiVersion("1.0")] public abstract class LanguageControllerBase : ManagementApiControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs index 69039afd7d..4871d3b9d6 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.ModelsBuilderDashboard; [ApiController] -[VersionedApiBackOfficeRoute("modelsBuilder")] +[VersionedApiBackOfficeRoute("models-builder")] [OpenApiTag("ModelsBuilder")] [ApiVersion("1.0")] diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Profiling/ProfilingControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Profiling/ProfilingControllerBase.cs index ebcae8fcf4..c081f74fe0 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Profiling/ProfilingControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Profiling/ProfilingControllerBase.cs @@ -6,7 +6,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.Profiling; [ApiVersion("1.0")] [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/profiling")] +[VersionedApiBackOfficeRoute("profiling")] [OpenApiTag("Profiling")] public class ProfilingControllerBase : ManagementApiControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs index 206266e872..78dcd539f4 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/PublishedCache/PublishedCacheControllerBase.cs @@ -6,7 +6,7 @@ namespace Umbraco.Cms.ManagementApi.Controllers.PublishedCache; [ApiVersion("1.0")] [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/published-cache")] +[VersionedApiBackOfficeRoute("published-cache")] [OpenApiTag("PublishedCache")] public class PublishedCacheControllerBase : ManagementApiControllerBase { diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs index e78b070d56..4639fa7bea 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Relation/ByChildRelationController.cs @@ -22,7 +22,7 @@ public class ByChildRelationController : RelationControllerBase _relationViewModelFactory = relationViewModelFactory; } - [HttpGet("childRelations/{childId:int}")] + [HttpGet("child-relations/{childId:int}")] [MapToApiVersion("1.0")] [ProducesResponseType(typeof(PagedViewModel), StatusCodes.Status200OK)] public async Task> ByChild(int childId, int skip, int take, string? relationTypeAlias = "") diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/Relation/RelationControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/Relation/RelationControllerBase.cs index 1c400c6ef1..7ec26735d1 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/Relation/RelationControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/Relation/RelationControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.Relation; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/relation")] +[VersionedApiBackOfficeRoute("relation")] [OpenApiTag("Relation")] [ApiVersion("1.0")] // TODO: Implement Authentication diff --git a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs index 8ed6c23112..be40c80bf1 100644 --- a/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs +++ b/src/Umbraco.Cms.ManagementApi/Controllers/TrackedReferences/TrackedReferencesControllerBase.cs @@ -5,7 +5,7 @@ using Umbraco.New.Cms.Web.Common.Routing; namespace Umbraco.Cms.ManagementApi.Controllers.TrackedReferences; [ApiController] -[BackOfficeRoute("api/v{version:apiVersion}/trackedReferences")] +[VersionedApiBackOfficeRoute("tracked-references")] [OpenApiTag("TrackedReferences")] [ApiVersion("1.0")] public abstract class TrackedReferencesControllerBase : ManagementApiControllerBase diff --git a/src/Umbraco.Cms.ManagementApi/ManagementApiComposer.cs b/src/Umbraco.Cms.ManagementApi/ManagementApiComposer.cs index 90176e5473..b73bc40ed2 100644 --- a/src/Umbraco.Cms.ManagementApi/ManagementApiComposer.cs +++ b/src/Umbraco.Cms.ManagementApi/ManagementApiComposer.cs @@ -144,7 +144,7 @@ public class ManagementApiComposer : IComposer endpoints.MapControllers(); // Serve contract - endpoints.MapGet($"{officePath}/api/openapi.json",async context => + endpoints.MapGet($"{officePath}/management/api/openapi.json",async context => { await context.Response.SendFileAsync(new EmbeddedFileProvider(this.GetType().Assembly).GetFileInfo("OpenApi.json")); }); diff --git a/src/Umbraco.Cms.ManagementApi/OpenApi.json b/src/Umbraco.Cms.ManagementApi/OpenApi.json index ed594302c0..b821f26e24 100644 --- a/src/Umbraco.Cms.ManagementApi/OpenApi.json +++ b/src/Umbraco.Cms.ManagementApi/OpenApi.json @@ -12,7 +12,7 @@ } ], "paths": { - "/umbraco/api/v1/upgrade/authorize": { + "/umbraco/management/api/v1/upgrade/authorize": { "post": { "tags": [ "Upgrade" @@ -45,7 +45,7 @@ } } }, - "/umbraco/api/v1/upgrade/settings": { + "/umbraco/management/api/v1/upgrade/settings": { "get": { "tags": [ "Upgrade" @@ -75,7 +75,7 @@ } } }, - "/umbraco/api/v1/trackedReferences/descendants/{parentId}": { + "/umbraco/management/api/v1/tracked-references/descendants/{parentId}": { "get": { "tags": [ "TrackedReferences" @@ -136,7 +136,7 @@ } } }, - "/umbraco/api/v1/trackedReferences/{id}": { + "/umbraco/management/api/v1/tracked-references/{id}": { "get": { "tags": [ "TrackedReferences" @@ -197,7 +197,7 @@ } } }, - "/umbraco/api/v1/trackedReferences/multiple": { + "/umbraco/management/api/v1/tracked-references/multiple": { "get": { "tags": [ "TrackedReferences" @@ -263,7 +263,7 @@ } } }, - "/umbraco/api/v1/template/tree/children": { + "/umbraco/management/api/v1/template/tree/children": { "get": { "tags": [ "Template" @@ -314,7 +314,7 @@ } } }, - "/umbraco/api/v1/template/tree/items": { + "/umbraco/management/api/v1/template/tree/items": { "get": { "tags": [ "Template" @@ -355,7 +355,7 @@ } } }, - "/umbraco/api/v1/template/tree/root": { + "/umbraco/management/api/v1/template/tree/root": { "get": { "tags": [ "Template" @@ -397,7 +397,7 @@ } } }, - "/umbraco/api/v1/stylesheet/tree/children": { + "/umbraco/management/api/v1/stylesheet/tree/children": { "get": { "tags": [ "Stylesheet" @@ -448,7 +448,7 @@ } } }, - "/umbraco/api/v1/stylesheet/tree/items": { + "/umbraco/management/api/v1/stylesheet/tree/items": { "get": { "tags": [ "Stylesheet" @@ -488,7 +488,7 @@ } } }, - "/umbraco/api/v1/stylesheet/tree/root": { + "/umbraco/management/api/v1/stylesheet/tree/root": { "get": { "tags": [ "Stylesheet" @@ -530,7 +530,7 @@ } } }, - "/umbraco/api/v1/static-file/tree/children": { + "/umbraco/management/api/v1/static-file/tree/children": { "get": { "tags": [ "StaticFile" @@ -581,7 +581,7 @@ } } }, - "/umbraco/api/v1/static-file/tree/items": { + "/umbraco/management/api/v1/static-file/tree/items": { "get": { "tags": [ "StaticFile" @@ -621,7 +621,7 @@ } } }, - "/umbraco/api/v1/static-file/tree/root": { + "/umbraco/management/api/v1/static-file/tree/root": { "get": { "tags": [ "StaticFile" @@ -663,7 +663,7 @@ } } }, - "/umbraco/api/v1/server/status": { + "/umbraco/management/api/v1/server/status": { "get": { "tags": [ "Server" @@ -693,7 +693,7 @@ } } }, - "/umbraco/api/v1/server/version": { + "/umbraco/management/api/v1/server/version": { "get": { "tags": [ "Server" @@ -723,7 +723,7 @@ } } }, - "/umbraco/api/v1/search/index/{indexName}": { + "/umbraco/management/api/v1/search/index/{indexName}": { "get": { "tags": [ "Search" @@ -767,7 +767,7 @@ } } }, - "/umbraco/api/v1/search/index": { + "/umbraco/management/api/v1/search/index": { "get": { "tags": [ "Search" @@ -808,7 +808,7 @@ } } }, - "/umbraco/api/v1/search/index/{indexName}/rebuild": { + "/umbraco/management/api/v1/search/index/{indexName}/rebuild": { "post": { "tags": [ "Search" @@ -852,7 +852,7 @@ } } }, - "/umbraco/api/v1/search/searcher": { + "/umbraco/management/api/v1/search/searcher": { "get": { "tags": [ "Search" @@ -893,7 +893,7 @@ } } }, - "/umbraco/api/v1/search/searcher/{searcherName}/search": { + "/umbraco/management/api/v1/search/searcher/{searcherName}/search": { "get": { "tags": [ "Search" @@ -962,7 +962,7 @@ } } }, - "/umbraco/api/v1/script/tree/children": { + "/umbraco/management/api/v1/script/tree/children": { "get": { "tags": [ "Script" @@ -1013,7 +1013,7 @@ } } }, - "/umbraco/api/v1/script/tree/items": { + "/umbraco/management/api/v1/script/tree/items": { "get": { "tags": [ "Script" @@ -1053,7 +1053,7 @@ } } }, - "/umbraco/api/v1/script/tree/root": { + "/umbraco/management/api/v1/script/tree/root": { "get": { "tags": [ "Script" @@ -1095,7 +1095,7 @@ } } }, - "/umbraco/api/v1/relation/childRelations/{childId}": { + "/umbraco/management/api/v1/relation/child-relations/{childId}": { "get": { "tags": [ "Relation" @@ -1155,7 +1155,7 @@ } } }, - "/umbraco/api/v1/relation/{id}": { + "/umbraco/management/api/v1/relation/{id}": { "get": { "tags": [ "Relation" @@ -1198,7 +1198,7 @@ } } }, - "/umbraco/api/v1/relation-type/tree/items": { + "/umbraco/management/api/v1/relation-type/tree/items": { "get": { "tags": [ "RelationType" @@ -1239,7 +1239,7 @@ } } }, - "/umbraco/api/v1/relation-type/tree/root": { + "/umbraco/management/api/v1/relation-type/tree/root": { "get": { "tags": [ "RelationType" @@ -1281,7 +1281,7 @@ } } }, - "/umbraco/api/v1/published-cache/collect": { + "/umbraco/management/api/v1/published-cache/collect": { "post": { "tags": [ "PublishedCache" @@ -1294,7 +1294,7 @@ } } }, - "/umbraco/api/v1/published-cache/rebuild": { + "/umbraco/management/api/v1/published-cache/rebuild": { "post": { "tags": [ "PublishedCache" @@ -1307,7 +1307,7 @@ } } }, - "/umbraco/api/v1/published-cache/reload": { + "/umbraco/management/api/v1/published-cache/reload": { "post": { "tags": [ "PublishedCache" @@ -1320,7 +1320,7 @@ } } }, - "/umbraco/api/v1/published-cache/status": { + "/umbraco/management/api/v1/published-cache/status": { "get": { "tags": [ "PublishedCache" @@ -1340,7 +1340,7 @@ } } }, - "/umbraco/api/v1/profiling/status": { + "/umbraco/management/api/v1/profiling/status": { "get": { "tags": [ "Profiling" @@ -1360,7 +1360,7 @@ } } }, - "/umbraco/api/v1/partial-view/tree/children": { + "/umbraco/management/api/v1/partial-view/tree/children": { "get": { "tags": [ "PartialView" @@ -1411,7 +1411,7 @@ } } }, - "/umbraco/api/v1/partial-view/tree/items": { + "/umbraco/management/api/v1/partial-view/tree/items": { "get": { "tags": [ "PartialView" @@ -1451,7 +1451,7 @@ } } }, - "/umbraco/api/v1/partial-view/tree/root": { + "/umbraco/management/api/v1/partial-view/tree/root": { "get": { "tags": [ "PartialView" @@ -1493,7 +1493,7 @@ } } }, - "/umbraco/api/v1/modelsBuilder/build": { + "/umbraco/management/api/v1/models-builder/build": { "post": { "tags": [ "ModelsBuilder" @@ -1524,7 +1524,7 @@ } } }, - "/umbraco/api/v1/modelsBuilder": { + "/umbraco/management/api/v1/models-builder": { "get": { "tags": [ "ModelsBuilder" @@ -1545,7 +1545,7 @@ } } }, - "/umbraco/api/v1/modelsBuilder/status": { + "/umbraco/management/api/v1/models-builder/status": { "get": { "tags": [ "ModelsBuilder" @@ -1565,7 +1565,7 @@ } } }, - "/umbraco/api/v1/member-type/tree/items": { + "/umbraco/management/api/v1/member-type/tree/items": { "get": { "tags": [ "MemberType" @@ -1606,7 +1606,7 @@ } } }, - "/umbraco/api/v1/member-type/tree/root": { + "/umbraco/management/api/v1/member-type/tree/root": { "get": { "tags": [ "MemberType" @@ -1648,7 +1648,7 @@ } } }, - "/umbraco/api/v1/member-group/tree/items": { + "/umbraco/management/api/v1/member-group/tree/items": { "get": { "tags": [ "MemberGroup" @@ -1689,7 +1689,7 @@ } } }, - "/umbraco/api/v1/member-group/tree/root": { + "/umbraco/management/api/v1/member-group/tree/root": { "get": { "tags": [ "MemberGroup" @@ -1731,7 +1731,7 @@ } } }, - "/umbraco/api/v1/media/tree/children": { + "/umbraco/management/api/v1/media/tree/children": { "get": { "tags": [ "Media" @@ -1792,7 +1792,7 @@ } } }, - "/umbraco/api/v1/media/tree/items": { + "/umbraco/management/api/v1/media/tree/items": { "get": { "tags": [ "Media" @@ -1843,7 +1843,7 @@ } } }, - "/umbraco/api/v1/media/tree/root": { + "/umbraco/management/api/v1/media/tree/root": { "get": { "tags": [ "Media" @@ -1895,7 +1895,7 @@ } } }, - "/umbraco/api/v1/media/recycle-bin/children": { + "/umbraco/management/api/v1/media/recycle-bin/children": { "get": { "tags": [ "Media" @@ -1956,7 +1956,7 @@ } } }, - "/umbraco/api/v1/media/recycle-bin/root": { + "/umbraco/management/api/v1/media/recycle-bin/root": { "get": { "tags": [ "Media" @@ -2008,7 +2008,7 @@ } } }, - "/umbraco/api/v1/media-type/tree/children": { + "/umbraco/management/api/v1/media-type/tree/children": { "get": { "tags": [ "MediaType" @@ -2068,7 +2068,7 @@ } } }, - "/umbraco/api/v1/media-type/tree/items": { + "/umbraco/management/api/v1/media-type/tree/items": { "get": { "tags": [ "MediaType" @@ -2109,7 +2109,7 @@ } } }, - "/umbraco/api/v1/media-type/tree/root": { + "/umbraco/management/api/v1/media-type/tree/root": { "get": { "tags": [ "MediaType" @@ -2160,7 +2160,7 @@ } } }, - "/umbraco/api/v1/language": { + "/umbraco/management/api/v1/language": { "get": { "tags": [ "Language" @@ -2201,7 +2201,7 @@ } } }, - "/umbraco/api/v1/language/{id}": { + "/umbraco/management/api/v1/language/{id}": { "get": { "tags": [ "Language" @@ -2288,7 +2288,7 @@ } } }, - "/umbraco/api/v1/language/create": { + "/umbraco/management/api/v1/language/create": { "post": { "tags": [ "Language" @@ -2324,7 +2324,7 @@ } } }, - "/umbraco/api/v1/language/update": { + "/umbraco/management/api/v1/language/update": { "put": { "tags": [ "Language" @@ -2371,7 +2371,7 @@ } } }, - "/umbraco/api/v1/install/settings": { + "/umbraco/management/api/v1/install/settings": { "get": { "tags": [ "Install" @@ -2411,7 +2411,7 @@ } } }, - "/umbraco/api/v1/install/setup": { + "/umbraco/management/api/v1/install/setup": { "post": { "tags": [ "Install" @@ -2456,7 +2456,7 @@ } } }, - "/umbraco/api/v1/install/validateDatabase": { + "/umbraco/management/api/v1/install/validate-database": { "post": { "tags": [ "Install" @@ -2491,7 +2491,7 @@ } } }, - "/umbraco/api/v1/help": { + "/umbraco/management/api/v1/help": { "get": { "tags": [ "Help" @@ -2569,7 +2569,7 @@ } } }, - "/umbraco/api/v1/document/tree/children": { + "/umbraco/management/api/v1/document/tree/children": { "get": { "tags": [ "Document" @@ -2639,7 +2639,7 @@ } } }, - "/umbraco/api/v1/document/tree/items": { + "/umbraco/management/api/v1/document/tree/items": { "get": { "tags": [ "Document" @@ -2699,7 +2699,7 @@ } } }, - "/umbraco/api/v1/document/tree/root": { + "/umbraco/management/api/v1/document/tree/root": { "get": { "tags": [ "Document" @@ -2760,7 +2760,7 @@ } } }, - "/umbraco/api/v1/document/recycle-bin/children": { + "/umbraco/management/api/v1/document/recycle-bin/children": { "get": { "tags": [ "Document" @@ -2821,7 +2821,7 @@ } } }, - "/umbraco/api/v1/document/recycle-bin/root": { + "/umbraco/management/api/v1/document/recycle-bin/root": { "get": { "tags": [ "Document" @@ -2873,7 +2873,7 @@ } } }, - "/umbraco/api/v1/document-type/tree/children": { + "/umbraco/management/api/v1/document-type/tree/children": { "get": { "tags": [ "DocumentType" @@ -2933,7 +2933,7 @@ } } }, - "/umbraco/api/v1/document-type/tree/items": { + "/umbraco/management/api/v1/document-type/tree/items": { "get": { "tags": [ "DocumentType" @@ -2974,7 +2974,7 @@ } } }, - "/umbraco/api/v1/document-type/tree/root": { + "/umbraco/management/api/v1/document-type/tree/root": { "get": { "tags": [ "DocumentType" @@ -3025,7 +3025,7 @@ } } }, - "/umbraco/api/v1/document-blueprint/tree/items": { + "/umbraco/management/api/v1/document-blueprint/tree/items": { "get": { "tags": [ "DocumentBlueprint" @@ -3066,7 +3066,7 @@ } } }, - "/umbraco/api/v1/document-blueprint/tree/root": { + "/umbraco/management/api/v1/document-blueprint/tree/root": { "get": { "tags": [ "DocumentBlueprint" @@ -3108,7 +3108,7 @@ } } }, - "/umbraco/api/v1/dictionary": { + "/umbraco/management/api/v1/dictionary": { "get": { "tags": [ "Dictionary" @@ -3149,7 +3149,7 @@ } } }, - "/umbraco/api/v1/dictionary/{key}": { + "/umbraco/management/api/v1/dictionary/{key}": { "get": { "tags": [ "Dictionary" @@ -3230,7 +3230,7 @@ } } }, - "/umbraco/api/v1/dictionary/create": { + "/umbraco/management/api/v1/dictionary/create": { "post": { "tags": [ "Dictionary" @@ -3275,7 +3275,7 @@ } } }, - "/umbraco/api/v1/dictionary/export/{key}": { + "/umbraco/management/api/v1/dictionary/export/{key}": { "get": { "tags": [ "Dictionary" @@ -3328,7 +3328,7 @@ } } }, - "/umbraco/api/v1/dictionary/import": { + "/umbraco/management/api/v1/dictionary/import": { "post": { "tags": [ "Dictionary" @@ -3381,7 +3381,7 @@ } } }, - "/umbraco/api/v1/dictionary/{id}": { + "/umbraco/management/api/v1/dictionary/{id}": { "patch": { "tags": [ "Dictionary" @@ -3440,7 +3440,7 @@ } } }, - "/umbraco/api/v1/dictionary/upload": { + "/umbraco/management/api/v1/dictionary/upload": { "post": { "tags": [ "Dictionary" @@ -3486,7 +3486,7 @@ } } }, - "/umbraco/api/v1/dictionary-item/tree/children": { + "/umbraco/management/api/v1/dictionary-item/tree/children": { "get": { "tags": [ "DictionaryItem" @@ -3537,7 +3537,7 @@ } } }, - "/umbraco/api/v1/dictionary-item/tree/items": { + "/umbraco/management/api/v1/dictionary-item/tree/items": { "get": { "tags": [ "DictionaryItem" @@ -3578,7 +3578,7 @@ } } }, - "/umbraco/api/v1/dictionary-item/tree/root": { + "/umbraco/management/api/v1/dictionary-item/tree/root": { "get": { "tags": [ "DictionaryItem" @@ -3620,7 +3620,7 @@ } } }, - "/umbraco/api/v1/data-type/tree/children": { + "/umbraco/management/api/v1/data-type/tree/children": { "get": { "tags": [ "DataType" @@ -3680,7 +3680,7 @@ } } }, - "/umbraco/api/v1/data-type/tree/items": { + "/umbraco/management/api/v1/data-type/tree/items": { "get": { "tags": [ "DataType" @@ -3721,7 +3721,7 @@ } } }, - "/umbraco/api/v1/data-type/tree/root": { + "/umbraco/management/api/v1/data-type/tree/root": { "get": { "tags": [ "DataType" @@ -3772,7 +3772,7 @@ } } }, - "/umbraco/api/v1/culture": { + "/umbraco/management/api/v1/culture": { "get": { "tags": [ "Culture" @@ -3813,7 +3813,7 @@ } } }, - "/umbraco/api/v1/analytics/all": { + "/umbraco/management/api/v1/analytics/all": { "get": { "tags": [ "Analytics" @@ -3853,7 +3853,7 @@ } } }, - "/umbraco/api/v1/analytics": { + "/umbraco/management/api/v1/analytics": { "get": { "tags": [ "Analytics" diff --git a/src/Umbraco.New.Cms.Web.Common/Routing/VersionedApiBackOfficeRouteAttribute.cs b/src/Umbraco.New.Cms.Web.Common/Routing/VersionedApiBackOfficeRouteAttribute.cs index a7abacdb03..3f129925a3 100644 --- a/src/Umbraco.New.Cms.Web.Common/Routing/VersionedApiBackOfficeRouteAttribute.cs +++ b/src/Umbraco.New.Cms.Web.Common/Routing/VersionedApiBackOfficeRouteAttribute.cs @@ -3,7 +3,7 @@ public class VersionedApiBackOfficeRouteAttribute : BackOfficeRouteAttribute { public VersionedApiBackOfficeRouteAttribute(string template) - : base($"api/v{{version:apiVersion}}/{template.TrimStart('/')}") + : base($"management/api/v{{version:apiVersion}}/{template.TrimStart('/')}") { } } diff --git a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs b/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs index 3146fba71b..9178234e74 100644 --- a/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs +++ b/tests/Umbraco.Tests.Integration/NewBackoffice/OpenAPIContractTest.cs @@ -38,7 +38,7 @@ internal sealed class OpenAPIContractTest : UmbracoTestServerTestBase var officePath = GlobalSettings.GetBackOfficePath(HostingEnvironment); - var urlToContract = $"{officePath}/api/openapi.json"; + var urlToContract = $"{officePath}/management/api/openapi.json"; var swaggerPath = $"{officePath}/swagger/All/swagger.json"; var apiContract = JObject.Parse(await Client.GetStringAsync(urlToContract));