我正在创建一个将进行50多次光学计算的网站。我需要通过api访问它们,但我也需要在视图中使用它们。我有一个.dll,它执行在标有“类型”计算名称的控制器中访问的计算。在这种情况下,它是PrismController来处理与Prism相关的所有计算。我只显示“顶角”计算。
就最佳做法而言,我这样做的方式是否最佳?在创建其中的50个之前,我想知道我是否走错了路。
似乎很多代码。
视图中的代码是我用于一次计算的代码。
[Produces("application/json")]
[Route("api/v1/[controller]")] <----------api route at controller level
public class PrismController : Controller
{
[HttpGet("ApicalAngle/{DegreesDeviation}/{Index}")]
public ActionResult<PrismModel> ApicalAngle(PrismModel prism)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
prism.Result = Prism.ApicalAngle(prism.DegreesDeviation, prism.Index);
return prism;
}
[Route("/[Controller]/[Action]")] <----view route overriding api route
[HttpGet("ApicalAngle")]
public IActionResult ApicalAngleCalc()
{
return View();
}
[HttpPost("ApicalAngle")]<------- Post that performs calculation
public ActionResult<PrismModel> ApicalAngleCalc(PrismModel prism)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
var dev = prism.DegreesDeviation;
prism.Result = Prism.ApicalAngle(prism.DegreesDeviation, prism.Index);
return View(prism);
}