【问题标题】:Calling REST API from SQL Server [closed]从 SQL Server 调用 REST API [关闭]
【发布时间】:2018-01-29 03:38:10
【问题描述】:

我有一个 REST API 可以将对象推送到消息队列 (Rabbit MQ)。我的产品负责人要求我从 SQL Server 存储过程调用该 API。

这是正常的好方法吗?

这是正确的方法吗?如果不是,我的问题的最佳解决方案是什么?

我知道 SQL Server 可以调用 REST API 并且我知道高级语言 像 C# 更好。

我的问题是如何说服我的产品负责人使用 C# instate of TSQL。

【问题讨论】:

  • 请定义“我的问题”。此外,我从未听说过产品负责人做出技术决策。还是您在谈论您的产品架构师?
  • @QualityCatalyst 这个项目的产品负责人是我们公司的技术经理 :-(
  • 在这种情况下,他会很好地解释为什么他的请求是有意义的。也许值得与我们分享这些细节,而不是要求争论为什么 C# 更好。顺便说一句,C# 是一种编程语言。您不能从编程语言调用服务。您可以做的是编写调用服务的服务、应用程序、机器人或网页。 ;-)
  • 我们技术经理的理由只是“我可以使用 sql server 比 C# .net 更容易做到这一点”:|。最后,我将使用 TSQL 从 sql server 调用 api:| :| :| :-(

标签: c# sql-server rest architecture software-design


【解决方案1】:

从安全角度——不建议直接调用数据库,因为来自api的数据可能存在一些安全问题,需要在数据库上运行之前处理。例如,如果您直接在数据库服务器上运行它,它可以有一个脚本可以删除数据库上的数据。如果您在单独的层中处理它,您可以防止它。

出于实际原因 - 在将数据插入数据库之前,您可能需要检查数据、更改数据、规范化数据等。从数据库外部这样做会更容易。 c# 有很多内置函数可以帮助你。

一般良好做法 - 将逻辑层与数据层分开是一种良好做法。

更好的支持和更容易维护 - 例如从 c# 代码进行调试比从 sql 代码进行调试更容易。此外,您可以在问题破坏数据库之前发现问题。

希望对你有所帮助。

【讨论】:

  • 就这么简单:
猜你喜欢
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 2019-07-03
相关资源
最近更新 更多