在本文中,将探讨如何使用Azure Web服务来实现RESTful WCF契约,并展示如何为GET和POST方法编写服务。将通过一个简单的用户管理系统示例,来演示如何添加和读取用户信息。
首先,打开Visual Studio并创建一个新的Azure云服务项目。将这个服务命名为"AzureRestfulServiceSample"。
接下来,向项目中添加一个WCF服务Web角色。
将接口文件和服务实现文件重命名为"ISampleService.cs"和"SampleService.svc"。
为了管理用户信息,需要定义一个用户数据类"UserData"。这个类将包含用户的ID、用户名、密码、手机号码和邮件地址等信息。
[DataContract]
public class UserData
{
private long m_UserID;
private string m_UserName;
private string m_UserPassword;
private string m_UserCell;
private string m_UserMail;
[DataMember]
public long UserID { get; set; }
[DataMember]
public string UserName { get; set; }
[DataMember]
public string UserPassword { get; set; }
[DataMember]
public string UserCell { get; set; }
[DataMember]
public string UserMail { get; set; }
}
需要定义两个方法:一个用于获取所有用户信息(GET方法),另一个用于添加新用户(POST方法)。为此,需要在接口中使用OperationContract和WebInvoke属性。
[ServiceContract]
public interface ISampleService
{
[OperationContract]
[WebInvoke(UriTemplate = "getusers", Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
bool GetAllUsers(out List<UserData> users);
[OperationContract]
[WebInvoke(UriTemplate = "adduser", Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
bool AddUser(List<UserData> users);
}
现在需要实现这两个方法。将使用AspNetCompatibilityRequirements属性来确保服务能够正常工作。
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class SampleService : ISampleService
{
public bool GetAllUsers(out List<UserData> users)
{
users = new List<UserData>();
for (int i = 0; i < 3; i++)
{
UserData user = new UserData();
user.UserID = i;
user.UserCell = "1111" + i.ToString();
user.UserMail = "TestMail" + i.ToString();
user.UserName = "UserName" + i.ToString();
user.UserPassword = "UserPassword" + i.ToString();
users.Add(user);
}
return true;
}
public bool AddUser(List<UserData> users)
{
return true;
}
}
在"SampleService.svc"文件中,确保Service属性指向类。同时,在"Web.config"文件中配置服务绑定。
现在可以运行服务并测试GET方法。在Google Chrome中请求添加用户的URL,可以得到生成的所有用户信息。