restful接口怎样使用C#开发
1、新建一个控制台程序
新建一个控制台程序,添加如下引用。


2、定义Data Contract
数据契约是WCF Service数据交换用的实体类型,增加如下的学生成绩实体。
[DataContract]
public class StudentScore
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Course { get; set; }
[DataMember]
public int Score { get; set; }
}

3、定义Service Contract
Service Contract是WCF Service的接口契约,用来描述Web Service接口的规格,增加如下的学生成绩查询接口:
[ServiceContract]
public interface IStudentScoreQuery
{
[OperationContract]
[WebGet(UriTemplate = "StudentScoreQuery/{name}", ResponseFormat = WebMessageFormat.Json)]
StudentScore GetScore(string name);
}

4、实现Service
增加一个c# class,实现IStudentScoreQuery服务契约,在其中增加查询学生成绩的逻辑。具体代码如下:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class StudentScoreQueryService:IStudentScoreQuery
{
private List<StudentScore> mScores =new List<StudentScore>();
public StudentScoreQueryService()
{
mScores.Add(new StudentScore(){Name = "张三",Score = 90});
mScores.Add(new StudentScore() {Name = "李四", Score = 87 });
}
public StudentScore GetScore(string name)
{
return mScores.FirstOrDefault(o => o.Name == name);
}
}

5、增加ServieHost实例化代码
WCF Service需要运行在ServiceHost中,增加如下实例化SeriveHost的代码,其中Web Service的根地址是http://localhost:8000/Demo。
static void Main(string[] args)
{
StudentScoreQueryService service = new StudentScoreQueryService();
WebServiceHost _serviceHost = new WebServiceHost(service, new Uri("http://localhost:8000/Demo"));
_serviceHost.Open();
Console.WriteLine("输入任意键关闭程序!");
Console.ReadKey();
_serviceHost.Close();
}

6、测试Restful Service
按F5运行控制台程序,在Chrome浏览器中输入Restful Server地址就可以看到结果了:http://localhost:8000/demo/StudentScoreQuery/张三 。


7、下载测试工程代码
测试工程代码共享在如下位置,可以自行下来测试。
下载路径:http://pan.baidu.com/s/1i4WKNFv
