Merge pull request #1431 from Kukks/api/merge-multiple-swagger

Swagger Generator: Merge multiple documents
This commit is contained in:
Nicolas Dorier
2020-04-05 17:36:04 +09:00
committed by GitHub
6 changed files with 413 additions and 380 deletions

View File

@@ -116,10 +116,14 @@ namespace BTCPayServer.Controllers
[Route("swagger/v1/swagger.json")]
public async Task<IActionResult> Swagger()
{
var fi = _fileProvider.GetFileInfo("swagger/v1/swagger.template.json");
using var stream = fi.CreateReadStream();
using var reader = new StreamReader(fi.CreateReadStream());
var json = JObject.Parse(await reader.ReadToEndAsync());
JObject json = new JObject();
var directoryContents = _fileProvider.GetDirectoryContents("swagger/v1");
foreach (IFileInfo fi in directoryContents)
{
await using var stream = fi.CreateReadStream();
using var reader = new StreamReader(fi.CreateReadStream());
json.Merge(JObject.Parse(await reader.ReadToEndAsync()));
}
var servers = new JArray();
servers.Add(new JObject(new JProperty("url", HttpContext.Request.GetAbsoluteRoot())));
json["servers"] = servers;