Browse Source

Merge pull request #17392 from abpframework/liangshiwei/staticproxy

Static C# API client proxy compatible ReplaceEmbeddedByPhysical
pull/17437/head
maliming 3 years ago
committed by GitHub
parent
commit
fecd038694
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyApiDescriptionFinder.cs

28
framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyApiDescriptionFinder.cs

@ -1,8 +1,10 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.FileProviders.Physical;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Http.Modeling;
using Volo.Abp.Json;
@ -92,15 +94,35 @@ public class ClientProxyApiDescriptionFinder : IClientProxyApiDescriptionFinder,
{
if (directoryContent.IsDirectory)
{
GetGenerateProxyFileInfos(fileInfoList, directoryContent.PhysicalPath);
GetGenerateProxyFileInfos(fileInfoList, GetDirectoryContentPath(path, directoryContent));
}
else
{
if (directoryContent.Name.EndsWith("generate-proxy.json"))
{
fileInfoList.Add(VirtualFileProvider.GetFileInfo(directoryContent.GetVirtualOrPhysicalPathOrNull()));
fileInfoList.Add(VirtualFileProvider.GetFileInfo(GetProxyFileInfoPath(path, directoryContent)));
}
}
}
}
private string GetDirectoryContentPath(string rootPath, IFileInfo fileInfo)
{
if (fileInfo is PhysicalDirectoryInfo physicalDirectoryInfo)
{
return rootPath + physicalDirectoryInfo.Name.EnsureStartsWith('/');
}
return fileInfo.PhysicalPath;
}
private string GetProxyFileInfoPath(string rootPath, IFileInfo fileInfo)
{
if (fileInfo is PhysicalFileInfo physicalFileInfo)
{
return rootPath + physicalFileInfo.Name.EnsureStartsWith('/');
}
return fileInfo.GetVirtualOrPhysicalPathOrNull();
}
}

Loading…
Cancel
Save