将数据(复杂数据/原始数据)发送到服务并获取响应(复杂数据/原始数据)的最佳方式(WCF 或 WEB API)
Posted
技术标签:
【中文标题】将数据(复杂数据/原始数据)发送到服务并获取响应(复杂数据/原始数据)的最佳方式(WCF 或 WEB API)【英文标题】:Which is the best way (WCF or WEB API) to send data(complex data/primitive data) to a service and get the response(complex data/primitive data) 【发布时间】:2018-11-03 12:58:44 【问题描述】:我有一个场景,假设 A 是一个基于 Web 的应用程序,需要根据从组件 B 返回的数据在屏幕上显示一些数据。 现在 A 向 B 发送事件的一些数据(这将是组件 B 的输入参数),组件 B 将对输入参数进行计算并将数据返回给 A。 A 和 B 都由不同的组织处理,那么它们之间的最佳通信方式是 WCF 还是 WEB API(也建议我们如何实现这种场景)?
我正在考虑在这里为组件 B 创建 Web API,以便 A 可以使用它并调用组件 B,并以 JSON 格式传输数据。 但是这种方法的问题是,这个请求将是 GET 请求,我们不能在 GET 请求上发送复杂类型。即使我们是通过JSON格式进行通信,我们如何在GET请求中发送大量数据。如果我的理解有误,请纠正我。
输入参数的数量在 10 到 20 之间,对组件 B 的请求次数非常频繁,因此我们还必须注意性能。
更新 1: 第一个问题是我们无法在请求正文中为 GET 发送数据。
【问题讨论】:
还取决于其他事情(可靠的消息传递、数据加密......)。为什么不能将 WebApi 与 POST 一起使用? WebApi 实现简单性和速度 / WCF 实现复杂性和安全性 使用 POST 获取数据是否正确,我们是否违反了 GET 的目的? 我会写答案,这样它会更易读 【参考方案1】:通常问题是WCF for complexity and security
与WebApi for simplicity and speed
。如果不需要 WCF 功能,我会选择 WebApi。如果您需要通过请求发送复杂的数据,您可以使用 POST。
使用 POST 请求数据是完全正确的,只有很小的限制。
看这里:https://www.w3schools.com/jquery/jquery_ajax_get_post.asp
【讨论】:
这个答案对我来说似乎是解决方法,但不能消除我的疑问,因为如果系统正在获取 POST 请求的数据,那么实际上这违反了 REST 原则。以上是关于将数据(复杂数据/原始数据)发送到服务并获取响应(复杂数据/原始数据)的最佳方式(WCF 或 WEB API)的主要内容,如果未能解决你的问题,请参考以下文章
目标 c - 尝试将“原始”“应用程序/json”数据发布到服务器 API