Мы используем .Net 2.0 для создания веб-сервисов. Мы хотели бы разработать веб-сервисы в ASP.Net 2.0.
В настоящее время веб-сервисы, которые мы имеем, возвращают либо один параметр, такой как
<s:element name="ChangePassword">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="currentPassword" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="newPassword" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ChangePasswordResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ChangePasswordResult" type="s:boolean" />
</s:sequence>
</s:complexType>
</s:element>
Мы также разработали веб-сервисы, которые возвращают такую модель, как
<s:element name="GetCreditBalance">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetCreditBalanceResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetCreditBalanceResult" type="tns:UserCreditsModel" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="UserCreditsModel">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="UserId" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="CreditBalance" type="s:decimal" />
<s:element minOccurs="1" maxOccurs="1" name="ValidityDate" type="s:dateTime" />
</s:sequence>
</s:complexType>
Мы также разработали веб-сервисы, которые возвращают список моделей, таких как
<s:element name="GetHistory">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetHistoryResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetHistoryResult" type="tns:ArrayOfSMSCreditHistoryModel" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfSMSCreditHistoryModel">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="SMSCreditHistoryModel" nillable="true" type="tns:SMSCreditHistoryModel" />
</s:sequence>
</s:complexType>
<s:complexType name="SMSCreditHistoryModel">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="CreditHistoryId" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="UserId" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="PaymentDate" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="PaymentRefNo" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="TotalAmount" type="s:decimal" />
<s:element minOccurs="1" maxOccurs="1" name="CreditsEarned" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="ValidityDate" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="Mode" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Status" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ChequeNO" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="ChequeDate" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="ChequeBankName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Remarks" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ValidityDateTime" type="s:string" />
</s:sequence>
</s:complexType>
Текущий подход заключается в том, что если во время какого-либо сбоя в работе, например, сбоя аутентификации, мы выдаем исключение из веб-службы.
нам хотелось бы знать, какой из подходов лучше всего подходит для разработки веб-сервиса, чтобы его можно было использовать на разных платформах без проблем с технологией.
Будет ли использовать помощь JSON. Возвращение чистого XML поможет.