Browse Source

Added HTTP API

pull/626/head
Halil ibrahim Kalkan 7 years ago
parent
commit
18591befc4
  1. 6
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs
  2. 6
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs
  3. 1
      modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj
  4. 7
      modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/DocsHttpApiModule.cs
  5. 42
      modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs
  6. 43
      modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs
  7. 4
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

6
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs

@ -1,5 +1,3 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
@ -10,8 +8,8 @@ namespace Volo.Docs.Projects
{
Task<ListResultDto<ProjectDto>> GetListAsync();
Task<ProjectDto> GetByShortNameAsync(string shortName);
Task<ProjectDto> GetAsync(string shortName);
Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(Guid id);
Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName);
}
}

6
modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs

@ -35,16 +35,16 @@ namespace Volo.Docs.Projects
);
}
public async Task<ProjectDto> GetByShortNameAsync(string shortName)
public async Task<ProjectDto> GetAsync(string shortName)
{
var project = await _projectRepository.GetByShortNameAsync(shortName);
return ObjectMapper.Map<Project, ProjectDto>(project);
}
public async Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(Guid id)
public async Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName)
{
var project = await _projectRepository.GetAsync(id);
var project = await _projectRepository.GetByShortNameAsync(shortName);
var versions = await _versionCache.GetOrAddAsync(
project.ShortName,

1
modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj

@ -11,6 +11,7 @@
<ItemGroup>
<ProjectReference Include="..\Volo.Docs.Application.Contracts\Volo.Docs.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj" />
</ItemGroup>
</Project>

7
modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/DocsHttpApiModule.cs

@ -1,9 +1,12 @@
using Volo.Abp.Modularity;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Modularity;
namespace Volo.Docs
{
[DependsOn(
typeof(DocsApplicationContractsModule))]
typeof(DocsApplicationContractsModule),
typeof(AbpAspNetCoreMvcModule)
)]
public class DocsHttpApiModule : AbpModule
{

42
modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs

@ -0,0 +1,42 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
namespace Volo.Docs.Documents
{
[RemoteService]
[Area("docs")]
[ControllerName("Document")]
[Route("api/docs/documents")]
public class DocsDocumentController : AbpController, IDocumentAppService
{
protected IDocumentAppService DocumentAppService { get; }
public DocsDocumentController(IDocumentAppService documentAppService)
{
DocumentAppService = documentAppService;
}
[HttpGet]
[Route("")]
public virtual Task<DocumentWithDetailsDto> GetAsync(GetDocumentInput input)
{
return DocumentAppService.GetAsync(input);
}
[HttpGet]
[Route("default")]
public virtual Task<DocumentWithDetailsDto> GetDefaultAsync(GetDefaultDocumentInput input)
{
return DocumentAppService.GetDefaultAsync(input);
}
[HttpGet]
[Route("navigation")]
public virtual Task<DocumentWithDetailsDto> GetNavigationDocumentAsync(GetNavigationDocumentInput input)
{
return DocumentAppService.GetNavigationDocumentAsync(input);
}
}
}

43
modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs

@ -0,0 +1,43 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc;
namespace Volo.Docs.Projects
{
[RemoteService]
[Area("docs")]
[ControllerName("Project")]
[Route("api/docs/projects")]
public class DocsProjectController : AbpController, IProjectAppService
{
protected IProjectAppService ProjectAppService { get; }
public DocsProjectController(IProjectAppService projectAppService)
{
ProjectAppService = projectAppService;
}
[HttpGet]
[Route("")]
public virtual Task<ListResultDto<ProjectDto>> GetListAsync()
{
return ProjectAppService.GetListAsync();
}
[HttpGet]
[Route("{shortName}")]
public virtual Task<ProjectDto> GetAsync(string shortName)
{
return ProjectAppService.GetAsync(shortName);
}
[HttpGet]
[Route("{shortName}/versions")]
public virtual Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName)
{
return ProjectAppService.GetVersionsAsync(shortName);
}
}
}

4
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -59,14 +59,14 @@ namespace Volo.Docs.Pages.Documents.Project
private async Task SetProjectAsync()
{
Project = await _projectAppService.GetByShortNameAsync(ProjectName);
Project = await _projectAppService.GetAsync(ProjectName);
}
private async Task SetVersionAsync()
{
//TODO: Needs refactoring
var output = await _projectAppService.GetVersionsAsync(Project.Id);
var output = await _projectAppService.GetVersionsAsync(Project.ShortName);
var versions = output.Items
.Select(v => new VersionInfoViewModel(v.DisplayName, v.Name))
.ToList();

Loading…
Cancel
Save