Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从SQL Server调用REST API_C#_Sql Server_Rest_Architecture_Software Design - Fatal编程技术网

C# 从SQL Server调用REST API

C# 从SQL Server调用REST API,c#,sql-server,rest,architecture,software-design,C#,Sql Server,Rest,Architecture,Software Design,我有一个RESTAPI将对象推送到消息队列(RabbitMQ)。我的产品负责人让我从SQL Server存储过程调用该API 这是一个正常的好方法吗 这条路对吗?如果不是,我的问题的最佳解决方案是什么 我知道SQLServer可以调用RESTAPI,也知道高级语言 像C#一样,我们更好 我的问题是如何说服我的产品所有者使用TSQL的C#instate。出于安全考虑-不建议直接调用数据库,因为api中的数据可能存在一些安全问题,需要在数据库上运行之前进行处理。例如,如果您直接在数据库服务器上运行,

我有一个RESTAPI将对象推送到消息队列(RabbitMQ)。我的产品负责人让我从SQL Server存储过程调用该API

这是一个正常的好方法吗

这条路对吗?如果不是,我的问题的最佳解决方案是什么

我知道SQLServer可以调用RESTAPI,也知道高级语言 像C#一样,我们更好


我的问题是如何说服我的产品所有者使用TSQL的C#instate。

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

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

一般良好实践-将逻辑层与数据层分离是良好实践

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


希望对你有帮助

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