我应该在.NET Core API中拥有视图吗

时间:2018-10-22 08:56:38

标签: api .net-core

在我工作的公司中,我们有几个不同的服务

  • API(.NET Core)
  • 内部前端(反应)
  • 客户的外部前端(反应)

我被要求创建一些视图,这些视图将通过API转换为PDF,但是由于它们与面向内部或面向外部的项目无关,因此我无法决定将其放置在何处。

我的第一个想法是将它们放入我们的.NET Core API。但是,这以前是严格的json-only API,所以我很想这不是预期的用途。

互联网,我的问题如下

  • 在我们的API中添加剃刀视图是否不是一个大禁忌?
  • 我应该为此提供微服务吗?
  • 什么是最佳做法?

谢谢!

1 个答案:

答案 0 :(得分:1)

您是对的,Razor的视图将过多。我看到两个选择:

  1. 后端:创建一个端点,该端点将根据传递的数据返回PDF文件。当然,您可以扩展数据。这种方式与Razor类似:您有一个视图模型并将其渲染为PDF文件。库的示例:void test(){ #if _SOME_VAR std::cout << "test" << std::endl; #if _SOME_VAR2 std::cout << "test2" << std::endl; #endif #endif }

  2. 前端:在客户端将HTML转换为PDF。像iTextSharp.LGPLv2.Core

我更喜欢第一个选项,因为首先,浏览器中已经有一个“另存为PDF”选项,因此这将是某种功能上的重复。另一方面,后端PDF生成似乎更加灵活(您可以使用所有域,也可以创建独立的布局),并且可以组织某种文件缓存。