diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-04 22:34:02 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-04 22:34:02 -0500 |
| commit | 4c725e69a8bb96da1f69fc3d958c680b77712f81 (patch) | |
| tree | f3c401132177e5f88c029fc1400866f8e6d31737 | |
| parent | 32ba557fe5293001b6c89d522e44ee92362a6390 (diff) | |
added swagger api docs
15 files changed, 105 insertions, 23 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpServer/SwaggerService.cs b/MediaBrowser.Common.Implementations/HttpServer/SwaggerService.cs new file mode 100644 index 000000000..a4808834d --- /dev/null +++ b/MediaBrowser.Common.Implementations/HttpServer/SwaggerService.cs @@ -0,0 +1,38 @@ +using ServiceStack.ServiceHost; +using System.Diagnostics; +using System.IO; + +namespace MediaBrowser.Common.Implementations.HttpServer +{ + /// <summary> + /// Class GetDashboardResource + /// </summary> + [Route("/swagger-ui/{ResourceName*}", "GET")] + public class GetSwaggerResource + { + /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + public string ResourceName { get; set; } + } + + public class SwaggerService : BaseRestService + { + /// <summary> + /// Gets the specified request. + /// </summary> + /// <param name="request">The request.</param> + /// <returns>System.Object.</returns> + public object Get(GetSwaggerResource request) + { + var runningDirectory = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); + + var swaggerDirectory = Path.Combine(runningDirectory, "swagger-ui"); + + var requestedFile = Path.Combine(swaggerDirectory, request.ResourceName.Replace('/', '\\')); + + return ToStaticFileResult(requestedFile); + } + } +} diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj index bbbf9490e..2f3ebdf19 100644 --- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj +++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj @@ -122,6 +122,7 @@ <Compile Include="HttpServer\NativeWebSocket.cs" /> <Compile Include="HttpServer\ServerFactory.cs" /> <Compile Include="HttpServer\StreamWriter.cs" /> + <Compile Include="HttpServer\SwaggerService.cs" /> <Compile Include="Logging\LogHelper.cs" /> <Compile Include="Logging\NLogger.cs" /> <Compile Include="Logging\NlogManager.cs" /> @@ -162,22 +163,48 @@ </ItemGroup> <ItemGroup> <Content Include="README.txt" /> - <Content Include="swagger-ui\css\screen.css" /> - <Content Include="swagger-ui\images\pet_store_api.png" /> - <Content Include="swagger-ui\images\wordnik_api.png" /> + <Content Include="swagger-ui\css\screen.css"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\images\pet_store_api.png"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\images\wordnik_api.png"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="swagger-ui\index.html"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> - <Content Include="swagger-ui\lib\backbone-min.js" /> - <Content Include="swagger-ui\lib\handlebars.runtime-1.0.0.beta.6.js" /> - <Content Include="swagger-ui\lib\jquery.ba-bbq.min.js" /> - <Content Include="swagger-ui\lib\jquery.min.js" /> - <Content Include="swagger-ui\lib\jquery.slideto.min.js" /> - <Content Include="swagger-ui\lib\jquery.wiggle.min.js" /> - <Content Include="swagger-ui\lib\swagger.js" /> - <Content Include="swagger-ui\lib\underscore-min.js" /> - <Content Include="swagger-ui\swagger-ui.js" /> - <Content Include="swagger-ui\swagger-ui.min.js" /> + <Content Include="swagger-ui\lib\backbone-min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\handlebars.runtime-1.0.0.beta.6.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\jquery.ba-bbq.min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\jquery.min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\jquery.slideto.min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\jquery.wiggle.min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\swagger.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\lib\underscore-min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\swagger-ui.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="swagger-ui\swagger-ui.min.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> </ItemGroup> <ItemGroup /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> diff --git a/MediaBrowser.Common.Implementations/swagger-ui/index.html b/MediaBrowser.Common.Implementations/swagger-ui/index.html index 5d2a8d88d..0b2b02b10 100644 --- a/MediaBrowser.Common.Implementations/swagger-ui/index.html +++ b/MediaBrowser.Common.Implementations/swagger-ui/index.html @@ -42,7 +42,7 @@ <script type="text/javascript"> $(function () { window.swaggerUi = new SwaggerUi({ - discoveryUrl:'../api/resources', + discoveryUrl:'../resources', apiKey:"", dom_id:"swagger-ui-container", supportHeaderParams: false, diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index d44f003fe..0fc97b049 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -172,7 +172,6 @@ <Compile Include="Resolvers\EntityResolutionHelper.cs" /> <Compile Include="Resolvers\ResolverPriority.cs" /> <Compile Include="Library\TVUtils.cs" /> - <Compile Include="ScheduledTasks\PeopleValidationTask.cs" /> <Compile Include="ScheduledTasks\RefreshMediaLibraryTask.cs" /> <Compile Include="Library\ItemResolveArgs.cs" /> <Compile Include="IO\DirectoryWatchers.cs" /> diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index c3c48f099..78ada1431 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -12,6 +12,7 @@ using MediaBrowser.Controller.ScheduledTasks; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MediaBrowser.Server.Implementations.Library.Resolvers; +using MediaBrowser.Server.Implementations.ScheduledTasks; using MoreLinq; using System; using System.Collections.Concurrent; diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index bf6046393..fbd6a96b2 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -77,9 +77,10 @@ <Compile Include="Library\UserManager.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Reflection\TypeMapper.cs" /> - <Compile Include="ScheduledTasks\Tasks\ChapterImagesTask.cs" /> - <Compile Include="ScheduledTasks\Tasks\ImageCleanupTask.cs" /> - <Compile Include="ScheduledTasks\Tasks\PluginUpdateTask.cs" /> + <Compile Include="ScheduledTasks\PeopleValidationTask.cs" /> + <Compile Include="ScheduledTasks\ChapterImagesTask.cs" /> + <Compile Include="ScheduledTasks\ImageCleanupTask.cs" /> + <Compile Include="ScheduledTasks\PluginUpdateTask.cs" /> <Compile Include="ServerApplicationPaths.cs" /> <Compile Include="Sqlite\SQLiteDisplayPreferencesRepository.cs" /> <Compile Include="Sqlite\SQLiteExtensions.cs" /> diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/Tasks/ChapterImagesTask.cs b/MediaBrowser.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs index 3ad1f1700..6cae2f75b 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/Tasks/ChapterImagesTask.cs +++ b/MediaBrowser.Server.Implementations/ScheduledTasks/ChapterImagesTask.cs @@ -9,7 +9,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.ScheduledTasks.Tasks +namespace MediaBrowser.Server.Implementations.ScheduledTasks { /// <summary> /// Class ChapterImagesTask diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/Tasks/ImageCleanupTask.cs b/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs index 939ba9317..8306e094b 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/Tasks/ImageCleanupTask.cs +++ b/MediaBrowser.Server.Implementations/ScheduledTasks/ImageCleanupTask.cs @@ -11,7 +11,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Server.Implementations.ScheduledTasks.Tasks +namespace MediaBrowser.Server.Implementations.ScheduledTasks { /// <summary> /// Class ImageCleanupTask diff --git a/MediaBrowser.Controller/ScheduledTasks/PeopleValidationTask.cs b/MediaBrowser.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs index 24e0c8542..6b8113480 100644 --- a/MediaBrowser.Controller/ScheduledTasks/PeopleValidationTask.cs +++ b/MediaBrowser.Server.Implementations/ScheduledTasks/PeopleValidationTask.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Controller.ScheduledTasks +namespace MediaBrowser.Server.Implementations.ScheduledTasks { /// <summary> /// Class PeopleValidationTask diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/Tasks/PluginUpdateTask.cs b/MediaBrowser.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs index 01a045853..3ae3a727b 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/Tasks/PluginUpdateTask.cs +++ b/MediaBrowser.Server.Implementations/ScheduledTasks/PluginUpdateTask.cs @@ -1,4 +1,5 @@ using MediaBrowser.Common.ScheduledTasks; +using MediaBrowser.Controller; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Net; using System; @@ -8,7 +9,7 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; -namespace MediaBrowser.Controller.ScheduledTasks +namespace MediaBrowser.Server.Implementations.ScheduledTasks { /// <summary> /// Plugin Update Task diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml b/MediaBrowser.ServerApplication/MainWindow.xaml index 89b05820e..8ad2c2372 100644 --- a/MediaBrowser.ServerApplication/MainWindow.xaml +++ b/MediaBrowser.ServerApplication/MainWindow.xaml @@ -13,7 +13,12 @@ <Separator x:Name="separatorDeveloperTools"/> <MenuItem x:Name="cmOpenExplorer" Header="Open Library Explorer" Click="cmOpenExplorer_click" /> <MenuItem x:Name="cmdReloadServer" Header="Restart Server" Click="cmdReloadServer_click" /> - <MenuItem x:Name="cmdApiDocs" Header="View Api Documentation" Click="cmdApiDocs_Click" /> + <MenuItem x:Name="cmdApiDocs" Header="View Api Documentation"> + <MenuItem x:Name="cmdStandardApiDocs" Header="Standard" Click="cmdApiDocs_Click"> + </MenuItem> + <MenuItem x:Name="cmdSwaggerApiDocs" Header="Swagger" Click="cmdSwaggerApiDocs_Click"> + </MenuItem> + </MenuItem> <Separator/> <MenuItem x:Name="cmShowLogWindow" Header="Show Log Window" IsCheckable="True" Click="CmShowLogWindow_click"/> <MenuItem x:Name="cmVisitCT" Header="Visit Community" Click="cmVisitCT_click"/> diff --git a/MediaBrowser.ServerApplication/MainWindow.xaml.cs b/MediaBrowser.ServerApplication/MainWindow.xaml.cs index 22695602c..8306ec541 100644 --- a/MediaBrowser.ServerApplication/MainWindow.xaml.cs +++ b/MediaBrowser.ServerApplication/MainWindow.xaml.cs @@ -162,6 +162,12 @@ namespace MediaBrowser.ServerApplication Kernel.Instance.WebApplicationName + "/metadata"); } + void cmdSwaggerApiDocs_Click(object sender, EventArgs e) + { + App.OpenUrl("http://localhost:" + _configurationManager.Configuration.HttpServerPortNumber + "/" + + Kernel.Instance.WebApplicationName + "/swagger-ui/index.html"); + } + /// <summary> /// Occurs when [property changed]. /// </summary> diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index 4ca2c6f96..8cd92d148 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -375,6 +375,9 @@ xcopy "$(SolutionDir)Mediabrowser.Uninstaller\bin\Release\MediaBrowser.Uninstall xcopy "$(SolutionDir)Mediabrowser.Uninstaller.Execute\bin\Release\MediaBrowser.Uninstaller.Execute.exe" "$(SolutionDir)..\Deploy\Server\System\" /y xcopy "$(SolutionDir)Mediabrowser.Installer\bin\Release\MediaBrowser.Installer.exe" "$(SolutionDir)..\Deploy\Server\System\" /y +mkdir "$(SolutionDir)..\Deploy\Server\System\swagger-ui" +xcopy "$(TargetDir)swagger-ui" "$(SolutionDir)..\Deploy\Server\System\swagger-ui" /y /s + xcopy "$(TargetDir)$(TargetFileName).config" "$(SolutionDir)..\Deploy\Server\System\" /y xcopy "$(TargetDir)*.dll" "$(SolutionDir)..\Deploy\Server\System" /y diff --git a/MediaBrowser.WebDashboard/Html/css/images/clients/dlna.png b/MediaBrowser.WebDashboard/Html/css/images/clients/dlna.png Binary files differindex 18b6ad421..2c7ba91c2 100644 --- a/MediaBrowser.WebDashboard/Html/css/images/clients/dlna.png +++ b/MediaBrowser.WebDashboard/Html/css/images/clients/dlna.png diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 680e23511..4d1685d02 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -398,6 +398,7 @@ <EmbeddedResource Include="Html\css\images\mblogoicon.png" />
<EmbeddedResource Include="Html\css\images\mblogotextblack.png" />
<EmbeddedResource Include="Html\css\images\mblogotextwhite.png" />
+ <EmbeddedResource Include="Html\css\images\clients\dlna.png" />
<Content Include="Html\css\images\stars.png" />
<EmbeddedResource Include="Html\scripts\MediaPlayer.js" />
</ItemGroup>
|
