using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using Newtonsoft.Json;
using Admin.Core.Common.Helpers;
using Admin.Core.Common.Attributes;
using Admin.Core.Repository;
namespace Admin.Core.Logs
{
///
/// Api帮助类
///
[SingleInstance]
public class ApiHelper
{
private List _apis;
private static readonly object _lockObject = new object();
public List GetApis()
{
if (_apis != null && _apis.Any())
return _apis;
lock (_lockObject)
{
if (_apis != null && _apis.Any())
return _apis;
_apis = new List();
var filePath = Path.Combine(AppContext.BaseDirectory, "Db/Data/data.json").ToPath();
var jsonData = FileHelper.ReadFile(filePath);
var apis = JsonConvert.DeserializeObject(jsonData).Apis;
foreach (var api in apis)
{
var parentLabel = apis.FirstOrDefault(a => a.Id == api.ParentId)?.Label;
_apis.Add(new ApiHelperDto
{
Label = parentLabel.NotNull() ? $"{parentLabel} / {api.Label}" : api.Label,
Path = api.Path?.ToLower().Trim('/')
});
}
return _apis;
}
}
}
public class ApiHelperDto
{
///
/// 接口名称
///
public string Label { get; set; }
///
/// 接口地址
///
public string Path { get; set; }
}
}