根据http://www.ibm.com/developerworks/cn/opensource/os-ws-rubyrails/index.html 创建 wsdl 的 webservice 时,遇到以下问题, 应该如何解决
非要用 webservice,个人觉得最容易的方法是
你用 rails 做成 restfull 的 service 公布在内网 再用 vs 做一个 Webservice 包起来公布给外部 或者直接用 vs 连你的 rails db 做一个 webservice
也可以折腾折腾 http://stackoverflow.com/questions/4993900/how-to-create-a-web-service
还是走 REST json 的方式比较靠谱,如果你的调用量不是很大的话 (< 2000/m) , 走 JSON 完全可以接受。折腾 thrift 除非对性能有比较高的要求。
#9 楼 @jimrokliu 同意,如果是 rails 的话,应该提供 json 格式的 restful 风格的 API 给其他平台调用,提供 web service 简直是扬短避长,.NET 这边调用 json 的话,虽然麻烦点,但也能接受,比如这样:
using (WebClient client = new WebClient())
{
string url = string.Format("http://10.71.5.88/forms/real_time_broadcasts/{0}/confirm_speaked.json", say.confirm_speaked_id);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Timeout = 5000;
request.ReadWriteTimeout = 10000;
request.Accept = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string htmldoc = reader.ReadToEnd();
response.Close();
}
另外现在语言和平台之间的互操作协议,json 相比 SOAP 早就一统江湖啦,唯一的争议是到底 json 格式语义如何定义,GraphQL/jsonapi,其实就是选 react 还是 ember.js,但无论如何前后端分离肯定是趋势,如果喜欢 Rails 的话 Rails 5 API 里面推荐的官方 gem 是AWS,其实换句话说,Rails 官方也给你选了,就是 jsonapi+ember.js 的方案。
所以我现在 focus 这两个技术,一个就是 ember.js,另外就是 rails 5。其他 wdsl, Thrift, Protobuf 特定场合特定技术吧,未来 Rails 主流应该还是 jsonapi。