This commit is contained in:
CortexCore
2025-07-04 01:50:54 +08:00
parent fdf263a308
commit 7db625419c
18 changed files with 195 additions and 350 deletions

View File

@@ -0,0 +1,24 @@
using IDIS;
using IDIS_Server_SIM.Extensions;
using CAICT.IDIS.Service;
using Microsoft.AspNetCore.Mvc;
namespace CN.CAICT.IDIS.Controllers;
/// <summary>
/// 诊断控制器
/// </summary>
[ApiController]
public class IDIS_DiagnosisController:Controller
{
/// <summary>
/// 诊断,使用该接口确保应用运行中
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("/api/diagnosis")]
public string Diagnose()
{
return "OK";
}
}

View File

@@ -0,0 +1,146 @@
using BITKit;
using IDIS;
using CAICT.IDIS;
using CAICT.IDIS.Service;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace CN.CAICT.IDIS.Controllers;
[ApiController]
public class IDIS_ServiceController:Controller
{
private readonly IDIS_Service _service;
public IDIS_ServiceController(IDIS_Service service)
{
_service = service;
}
/// <summary>
/// 获取服务器信息
/// </summary>
/// <returns>主机名称</returns>
[HttpGet]
[Route("info")]
public IActionResult Info()
{
return Ok(new IDIS_Response(Environment.MachineName));
}
/// <summary>
/// 一次解析所有标识
/// </summary>
/// <returns>所有标识的数组</returns>
[HttpGet]
[Route("/identityv2/data/detail/all")]
public async Task<IActionResult> QueryAll()
{
try
{
var result = await _service.ToArrayAsync();
var response = new IDIS_Response(result);
var json = JsonConvert.SerializeObject(response);
//return Ok(JsonConvert.SerializeObject(response));
return new ContentResult()
{
Content = json,
ContentType = "application/json",
StatusCode = 200
};
}
catch (Exception e)
{
return BadRequest(new IDIS_Response(e.Message,false)
{
Status = 2
});
}
}
/// <summary>
/// 解析表示
/// </summary>
/// <param name="handle">标识码</param>
/// <returns></returns>
[HttpGet]
[Route("/identityv2/data/detail")]
public async Task<IActionResult> Query(string handle)
{
try
{
var result = await _service.QueryAsync(handle);
var response = new IDIS_Response(result);
var json = JsonConvert.SerializeObject(response);
//return Ok(JsonConvert.SerializeObject(response));
return new ContentResult()
{
Content = json,
ContentType = "application/json",
StatusCode = 200
};
}
catch (Exception e)
{
return BadRequest(new IDIS_Response(e.Message,false)
{
Status = 2
});
}
}
/// <summary>
/// 查询标识是否存在
/// </summary>
/// <param name="code">标识码</param>
/// <returns></returns>
[HttpGet]
[Route("isExist")]
public async Task<IActionResult> IsExist(string code)
{
return Ok(new IDIS_Response(await _service.IsExistAsync(code)));
}
/// <summary>
/// 注册标识
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("/identityv2/data")]
public async Task<IActionResult> Register()
{
try
{
using var reader = new StreamReader(Request.Body);
var json = await reader.ReadToEndAsync();
var data = JsonConvert.DeserializeObject<IDIS_Register_Data>(json)!;
await _service.RegisterIDISAsync(data.Handle, data.TemplateVersion, data.Value);
return Ok(new IDIS_Response());
}
catch (Exception e)
{
return BadRequest(new IDIS_Response(e.Message,false)
{
Status = 2
});
}
}
/// <summary>
/// 更新标识(目前不可用)
/// </summary>
/// <returns></returns>
[HttpGet]
[Route("update")]
public string Update()
{
return "err:0";
}
/// <summary>
/// 删除标识
/// </summary>
/// <param name="code">标识码</param>
/// <returns></returns>
[HttpGet]
[Route("delete")]
public async Task<bool> Delete (string code)
{
await _service.DeleteAsync(code);
return true;
}
}

View File

@@ -0,0 +1,69 @@
using BITKit;
using IDIS;
using CAICT.IDIS;
using CAICT.IDIS.Service;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace CN.CAICT.IDIS.Controllers;
[ApiController]
public class IDIS_TemplateController:Controller
{
private readonly IDIS_TemplateService _service;
private readonly ILogger<IDIS_TemplateController> _logger;
public IDIS_TemplateController(IDIS_TemplateService service, ILogger<IDIS_TemplateController> logger)
{
_service = service;
_logger = logger;
}
/// <summary>
/// 查询标识模板
/// </summary>
/// <param name="prefix">前缀例如88.123.99</param>
/// <param name="version">版本例如v0.0.1</param>
/// <returns></returns>
[Route("/snms/api/template/v1")]
[HttpGet]
public async Task<IActionResult> Query(string prefix, string version)
{
try
{
return Ok(new IDIS_Response(await _service.QueryAsync(prefix, version)));
}
catch (Exception e)
{
return BadRequest(new IDIS_Response(e.Message,false)
{
Status = 2
});
}
}
/// <summary>
/// 保存标识模板
/// </summary>
/// <returns></returns>
[Route("/snms/api/template/v1")]
[HttpPost]
public async Task<IActionResult> Save()
{
using var reader = new StreamReader(Request.Body);
var json = await reader.ReadToEndAsync();
try
{
var data = JsonConvert.DeserializeObject<IDIS_Template>(json)!;
await _service.SaveAsync(data);
return Ok(new IDIS_Response());
}
catch (Exception e)
{
return BadRequest(new IDIS_Response(e.Message, false)
{
Status = 2
});
}
}
}