Web服务(Web方法)字符串返回类型

时间:2013-06-05 03:44:52

标签: java xml web-services return-type

我对最佳做法有疑问。假设我有一个返回员工ID和员工姓名的Web方法。现在,由于我是Web Service的新手,我们(客户端(C#)和I(Java))同意返回类型List<String>,String格式为employee id,employee name。到目前为止一切都很顺利。程序运行并完成工作。

现在,前几天,我正在与另一位开发人员讨论返回类型,她建议我返回数据的方式不对,我应该返回XML格式的String,这样典型的输出可能看起来像(这里没有格式化),

 <root><employee><employeeId>1234</employeeId><employeeName>firstname lastname</employeeName></employee></root>

我认为,在这种情况下,您将超过50%的非数据(XML标签)返回给客户端,这是不必要的,浪费带宽并增加开销。她反驳说,如果出现不明显的情况,用户没有权限访问某些东西,或者没有任何东西可以返回但服务器上的错误代码或出现问题,即当您需要返回除实际数据本身以外的其他内容时, XML字符串很有用,因为您可以插入标记。这是一个有效的论点,那么对Web服务有良好经验的人可以在这里阐明一些亮点吗?

1 个答案:

答案 0 :(得分:0)

基本上,当您的列表被序列化时,它将被转换为XML,尽管格式如下:

<Value>EmployeeId, EmployeeName</Value>

标签实际上并不是必需的,实际上它们很有用,因为它们保留了数据并且它是有效的数据类型。我不喜欢返回XML字符串,因为它很容易出错,你可能总是需要更新字符串的值。我建议返回一个包含结果集和错误描述属性的对象。

public class ReturnObject
{
   public List<Employee> list {get; set;}
   public String ErrorDescription {get; set;}
}

public class Employee
{
   public int EmployeeID {get; set;}
   public string EmployeeName {get; set;}
}

在这里,您的Web服务将返回具有附加属性“ErrorDescription”的具体类型,如果您需要返回任何验证或身份验证错误,可以使用该属性。使用SoapUI测试序列化的返回对象是否为XML。

相关问题