概念
具象状态传输 (Representational State Transfer, REST) 的体系结构风格。
Windows Communication Foundation (WCF)。
REST 的约束采用的就是掌控 Web 的基本原则。这些原则是:
- 用户代理与资源交互,任何可命名和表达的事物都可称为资源。每项资源都有一个唯一的统一资源标识符 (URI)。
- 与资源的交互(通过其唯一的 URI 定位)使用 HTTP 标准动词(GET、POST、PUT 和 DELETE)的统一接口完成。交互中声明资源的媒体类型也很重要,它使用 HTTP 内容类型标头指定。(XHTML、XML、JPG、PNG 和 JSON 就是一些广为人知的媒体类型。)
- 资源是自我描述的。处理资源请求所需的全部信息均包含在请求本身内(这样服务可以没有状态)。
- 资源包含到其他资源的链接(超媒体)。
model定义
using System.Runtime.Serialization; namespace Model { [DataContract] public class UserModel { [DataMember] public int ID { get; set; } [DataMember] public string UserName { get; set; } [DataMember] public string PassWord { get; set; } [DataMember] public int Age { get; set; } public override string ToString() { return string.Format("ID:{0};姓名: {1};年龄:{2};密码:{3}",ID, UserName, Age, PassWord); } } }
此处要注意[DataContract],[DataMember]在命名空间using System.Runtime.Serialization下面;
WCF ServiceContract 定义
[ServiceContract] public interface IMSDNMagazineService { [OperationContract] [WebGet(UriTemplate="/")] IssuesCollection GetAllIssues(); [OperationContract] [WebGet(UriTemplate = "/{year}")] IssuesData GetIssuesByYear(string year); [OperationContract] [WebGet(UriTemplate = "/{year}/{issue}")] Articles GetIssue(string year, string issue); [OperationContract] [WebGet(UriTemplate = "/{year}/{issue}/{article}")] Article GetArticle(string year, string issue, string article); [OperationContract] [WebInvoke(UriTemplate = "/{year}/{issue}",Method="POST")] Article AddArticle(string year, string issue, Article article); }
[OperationContract] [WebHelp(Comment = "Returns the item in JSON format.")] [WebGet(UriTemplate = "?format=json", ResponseFormat = WebMessageFormat.Json)] TItem GetItemInJson(); [OperationContract] [WebHelp(Comment = "Returns the item in XML format.")] [WebGet(UriTemplate = "")] TItem GetItemInXml(); [WebHelp(Comment = "Initializes the item based on the incoming JSON.")] [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "?format=json", ResponseFormat=WebMessageFormat.Json)] TItem AddItemInJson(TItem initialValue);
WCF服务宿主方式
1、ServiceHost方式
阅读全文

公众号近期文章
赞赏支持
0 Responses to “基于WCF的Restful架构简述”