C# 在web API上公开SQL Server存储过程
我不确定这是否是一个堆栈溢出的问题,但接下来 假设您有两个站点:C# 在web API上公开SQL Server存储过程,c#,sql-server,proxy,asp.net-web-api,C#,Sql Server,Proxy,Asp.net Web Api,我不确定这是否是一个堆栈溢出的问题,但接下来 假设您有两个站点: 站点A承载一个可公开访问的web API,该API在同一站点上使用一个NoSQL数据库和一组web应用程序 站点B承载一个SQL Server(与一个NoSQL数据库不同的数据)和一些其他web应用程序 问题是站点A的web API需要访问站点B的SQL Server以实现其某些功能。您可以公开SQL Server IP并以这种方式进行存储过程调用,但是否可以创建一个通用web API,该API将托管在站点B上,并代理来自站点
- 站点A承载一个可公开访问的web API,该API在同一站点上使用一个NoSQL数据库和一组web应用程序
- 站点B承载一个SQL Server(与一个NoSQL数据库不同的数据)和一些其他web应用程序
如果我走错了方向,请告诉我…您所描述的似乎是SQL server over web api的隧道。我不会鼓励的 我不会将这两个系统视为SQL Server数据库v/s NoSQL数据库,而是将它们抽象为域实体的服务 如果这两个系统需要交换数据,数据将以这些实体的形式存在。我有这种感觉的原因是:
我更喜欢在a和B之间有一个非常松散的耦合。定义数据的所有权,其他使用者需要通过合同进行通信。我最终创建了一个ASP.NET MVC站点,该站点带有一个控制器,该控制器使用反射来根据传递的参数确定客户端试图调用哪个存储库方法在里面所以它基本上是一个远程调用SQL过程的API。当然,它有身份验证。它位于站点B 站点A承载一个调用API并获取数据的站点 编辑:
我忘了澄清NoSQL和SQL Server数据库存储不同的数据。站点A上的web API需要同时使用这两个数据库。但是是的,这是一个web API上的隧道。你为什么不鼓励它呢?我的回答补充了几点,除此之外,还有一个潜在的安全漏洞,特别是如果API是通过互联网的话。