jtr/DevDisciples.Json.Tools.API/Controllers/TransformController.cs

50 lines
1.6 KiB
C#

using DevDisciples.Json.Tools.API.Requests;
using Microsoft.AspNetCore.Mvc;
namespace DevDisciples.Json.Tools.API.Controllers;
[ApiController]
[Route("api/[controller]")]
public class TransformController : ControllerBase
{
[HttpPost("uglify")]
public IActionResult Uglify([FromBody] UglifyRequest request)
{
var context = new JsonFormatter.Context { Beautify = false };
var result = JsonFormatter.Format(request.Source, context);
return Ok(new { Result = result });
}
[HttpPost("beautify")]
public IActionResult Beautify([FromBody] BeautifyRequest request)
{
var context = new JsonFormatter.Context { Beautify = true, IndentSize = request.IndentSize };
var result = JsonFormatter.Format(request.Source, context);
return Ok(new { Result = result });
}
[HttpPost("json2csharp")]
public IActionResult Json2CSharp([FromBody] Json2CsharpRequest request)
{
var context = new Json2CSharpTranslator.Context
{
RootClassName = request.RootClassName,
Namespace = request.Namespace,
};
var result = Json2CSharpTranslator.Translate(request.Source, context);
return Ok(new { Result = result });
}
[HttpPost("jsonpath")]
public IActionResult JsonPath([FromBody] JsonPathRequest request)
{
var result = Tools.JsonPath.Interpreter.Evaluate(request.Source, request.Path);
return Ok(new { Result = JsonFormatter.Format(result, new() { Beautify = true }) });
}
}