diff --git a/Directory.Packages.props b/Directory.Packages.props index 8297144..226dc98 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -53,6 +53,7 @@ + diff --git a/OrchardCoreContrib.Modules.sln b/OrchardCoreContrib.Modules.sln index 27ccb2f..c3a2d32 100644 --- a/OrchardCoreContrib.Modules.sln +++ b/OrchardCoreContrib.Modules.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.1.11312.151 d18.0 +VisualStudioVersion = 18.1.11312.151 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C80A325F-F4C4-4C7B-A3CF-FB77CD8C9949}" EndProject @@ -82,6 +82,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrchardCoreContrib.Cloudfla EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrchardCoreContrib.CloudflareTurnstile.Tests", "test\OrchardCoreContrib.CloudflareTurnstile.Tests\OrchardCoreContrib.CloudflareTurnstile.Tests.csproj", "{B2029246-BC23-4C18-B71A-55F13CB9E7AB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrchardCoreContrib.Apis.Scalar", "src\OrchardCoreContrib.Apis.Scalar\OrchardCoreContrib.Apis.Scalar.csproj", "{3D421DD2-F842-4F5A-A95E-5AD8D3632712}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -216,6 +218,10 @@ Global {B2029246-BC23-4C18-B71A-55F13CB9E7AB}.Debug|Any CPU.Build.0 = Debug|Any CPU {B2029246-BC23-4C18-B71A-55F13CB9E7AB}.Release|Any CPU.ActiveCfg = Release|Any CPU {B2029246-BC23-4C18-B71A-55F13CB9E7AB}.Release|Any CPU.Build.0 = Release|Any CPU + {3D421DD2-F842-4F5A-A95E-5AD8D3632712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D421DD2-F842-4F5A-A95E-5AD8D3632712}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D421DD2-F842-4F5A-A95E-5AD8D3632712}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D421DD2-F842-4F5A-A95E-5AD8D3632712}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -253,6 +259,7 @@ Global {689A006D-0992-456E-86C9-66B7A2EE06A5} = {A239BFB0-9BA7-467C-AD41-405D0740633F} {1CF93DCB-2DF2-4E42-A37E-744F38D347C5} = {C80A325F-F4C4-4C7B-A3CF-FB77CD8C9949} {B2029246-BC23-4C18-B71A-55F13CB9E7AB} = {A239BFB0-9BA7-467C-AD41-405D0740633F} + {3D421DD2-F842-4F5A-A95E-5AD8D3632712} = {C80A325F-F4C4-4C7B-A3CF-FB77CD8C9949} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {48F73B05-7D3D-4ACF-81AE-A98B2B4EFDB2} diff --git a/src/OrchardCoreContrib.Apis.Scalar/Manifest.cs b/src/OrchardCoreContrib.Apis.Scalar/Manifest.cs new file mode 100644 index 0000000..56f182b --- /dev/null +++ b/src/OrchardCoreContrib.Apis.Scalar/Manifest.cs @@ -0,0 +1,7 @@ +using OrchardCore.Modules.Manifest; + +[assembly: Module( + Name = "Scalar UI", + Description = "Enables Scalar UI for Orchard Core APIs.", + Dependencies = ["OrchardCoreContrib.Apis.Swagger"] +)] diff --git a/src/OrchardCoreContrib.Apis.Scalar/OrchardCoreContrib.Apis.Scalar.csproj b/src/OrchardCoreContrib.Apis.Scalar/OrchardCoreContrib.Apis.Scalar.csproj new file mode 100644 index 0000000..ad002f6 --- /dev/null +++ b/src/OrchardCoreContrib.Apis.Scalar/OrchardCoreContrib.Apis.Scalar.csproj @@ -0,0 +1,38 @@ + + + + 1.0.0 + The Orchard Core Contrib Team + + Enables Scalar UI for Orchard Core APIs. + README.md + BSD-3-Clause + https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/tree/main/src/OrchardCoreContrib.Apis.Scalar/README.md + https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules + git + true + Orchard Core, Orchard Core Contrib, OpenAPI, Swagger, Scalar UI + https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/releases + OrchardCoreContrib.Apis.Scalar + icon.png + Orchard Core Contrib Scalar Module + true + 2019 Orchard Core Contrib + + + + + + + + + + + + + + + + + + diff --git a/src/OrchardCoreContrib.Apis.Scalar/README.md b/src/OrchardCoreContrib.Apis.Scalar/README.md new file mode 100644 index 0000000..c9297b2 --- /dev/null +++ b/src/OrchardCoreContrib.Apis.Scalar/README.md @@ -0,0 +1,42 @@ +# Scalar Module + +This module allows you to create APIs documentations using Scalar UI. + +## Version + +1.0.0 + +## Category + +Api + +## Dependencies + +| Product | Module | +|-------------|-----------------------------| +| OrchardCoreContrib | Swagger (`OrchardCoreContrib.Api.Swagger`) | + +## Features + +| | | +|------------------|---------------------------------------------| +| **Name** | Scalar (`OrchardCoreContrib.Apis.Scalar`) | +| **Description** | Enables Scalar UI for OrchardCore APIs. | +| **Dependencies** | | + +## NuGet Packages + +| Name | Version | +|-----------------------------------------------------------------------------------------------------------|---------| +| [`OrchardCoreContrib.Apis.Scalar`](https://www.nuget.org/packages/OrchardCoreContrib.Apis.Scalar/1.0.0) | 1.0.0 | + +## Get Started + +1. Install the [`OrchardCoreContrib.Apis.Scalar`](https://www.nuget.org/packages/OrchardCoreContrib.Apis.Scalar/) NuGet package to your Orchard Core host project. +2. Go to the admin site +3. Select **Configuration -> Features** menu. + +### Scalar UI + +4. Enable the `Scalar UI` feature. +5. Go to the `{tenant-URL}/scalar`, you should see all the APIs listed in Scalar UI docs. diff --git a/src/OrchardCoreContrib.Apis.Scalar/Startup.cs b/src/OrchardCoreContrib.Apis.Scalar/Startup.cs new file mode 100644 index 0000000..f1c09f3 --- /dev/null +++ b/src/OrchardCoreContrib.Apis.Scalar/Startup.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.DependencyInjection; +using OrchardCore.Modules; +using OrchardCoreContrib.OpenApi.Abstractions; +using Scalar.AspNetCore; + +namespace OrchardCoreContrib.Apis.Scalar; + +public sealed class Startup : StartupBase +{ + public override void Configure(IApplicationBuilder app, IEndpointRouteBuilder routes, IServiceProvider serviceProvider) + { + var swaggerApiDefinition = serviceProvider.GetService(); + + routes.MapScalarApiReference(options => + options.OpenApiRoutePattern = $"/swagger/{swaggerApiDefinition.Version}/swagger.json"); + } +} diff --git a/src/OrchardCoreContrib.Modules.Web/OrchardCoreContrib.Modules.Web.csproj b/src/OrchardCoreContrib.Modules.Web/OrchardCoreContrib.Modules.Web.csproj index 64056c4..72f92ec 100644 --- a/src/OrchardCoreContrib.Modules.Web/OrchardCoreContrib.Modules.Web.csproj +++ b/src/OrchardCoreContrib.Modules.Web/OrchardCoreContrib.Modules.Web.csproj @@ -7,6 +7,7 @@ +