只是寻找有关Web服务界面设计的最佳实践的一些反馈.
我有两个选择:
选项1
public string GetSomeData(SomeCriteriaClass criteria);
Run Code Online (Sandbox Code Playgroud)
其中SomeCriteriaClass定义为:
public int ID;
public string Name;
public string Property2; etc.
Run Code Online (Sandbox Code Playgroud)
选项2
public string GetSomeData(int id, string name, string property2)
Run Code Online (Sandbox Code Playgroud)
哪个是首选?这似乎是设计模式的冲突 - 1是在一个类中包装参数,而另一个是保持Web服务接口的灵活性和开放性.
第二个问题是 - 如果我们选择Option1 - 你如何通过URL调用它?
谢谢
您可以采取困难的方式并使用 SOAP 实现选项 #1。使用 SOAP,您可以定义复杂的数据类型。另一方面,您可以按照选项 #2 中的“hack”方式执行此操作,即使用 REST 并仅对 URL 或 HTTP POST 消息中的参数进行编码。