zoukankan      html  css  js  c++  java
  • 通过HTTP协议标准动作使用REST WCF 服务

    前几节介绍了REST WCF 服务的一些基本的特点,本节说明一下,如何基于HTTP的标准动作来使用REST WCF 服务。由于RESTful服务的架构风格基于HTTP协议,并且其设计原则中明确指出:通过通用的连接器接口来使用资源。对于REST架构风格的服务,主要通过它8个动作中的4个来使用资源,即:GET,POST,PUT,DELETE。
      在RESTful 服务中,GET,POST,PUT,DELETE的标准操作如下:
      GET:获取资源
      POST:修改资源
      PUT:创建资源
      DELETE:删除资源


    本节涉及的要点如下:
    1、如何定义接口规范,使客户端通过能通过HTTP协议的标准动作来使用REST WCF资源。
    2、客户端如何通过HTTP标准动作使用使用资源
    首先介绍一下开发环境:
    VS2008 SP1。由于是基于Framework3.5的平台,所以本节介绍的只是REST WCF 3.5的一些特点。Ddmo结构图:


    1、接口规范的定义:
      对REST 架构风格有一些了解的同学都知道,在System.ServiceModel.Web程序集中,微软为我们提供了两个特性:WebGetAttribute、WebInvokeAttribute.
    前几节也做过一个简要的介绍,WebGetAttribute通过名称可以得知,它是用来获取资源的,所以它使用的HTTP动作是GET。在REST WCF中,其他的几个动作都是在WebInvokeAttribute中定义的。
      REST WCF中,就是通过在WebGetAttribute与WebInvokeAttribute中,通过UriTemplate属性定义了资源的使用方式。另外还可以通过RequestFormat、ResponseFormat定义客户端请求时使用的数据格式以及服务端返回给客户端的数据格式。
      在本例中,通过服务契约定义来定义接口规范以及客户端的使用规范。如下图示:


    注:UriTemplate中类似Student/{name}中的{name}即为所定义方法中所需参数的占位符。
    2、客户端使用REST WCF 。
    2.1使用HTTP GET 动作获取资源:

    1 string getMsg = client.DownloadString("http://localhost:6012/Student.svc/Student/zhangRest");
    2 Console.WriteLine(string.Format("get方法获取到的学生信息:{0}", getMsg));

      

    2.2使用HTTP POST 动作修改资源:

    1 string postMsg = client.UploadString("http://localhost:6012/Student.svc/Student/lizhi/0105245687""POST",
    2 string.Empty);
    3 Console.WriteLine(string.Format("post方法修改到的学生信息:{0}", postMsg));

      

    2.3使用HTTP DELETE 动作删除资源:

    1 string deleteMsg = client.UploadString("http://localhost:6012/Student.svc/Student/zhangRest""DELETE"string.Empty);
    2 Console.WriteLine(string.Format("delete方法删除到的学生信息:{0}", deleteMsg));

      

    2.4使用HTTP PUT动作添加资源:

    1 string addMsg = client.UploadString("http://localhost:6012/Student.svc/Student/zhangsan/0102356897","PUT"string.Empty);
    2 Console.WriteLine(string.Format("put方法添加的学生信息:{0}", addMsg));

      

    四种动作的使用方式如上所示。

      在REST WCF中,URI(Uniform Resources Identifier)就是在服务契约中定义通过UriTemplate定义的,而不像在SOA架构下的服务中直接使用方法名。

    随笔分类 -WCF

    通过HTTP协议标准动作使用REST WCF 服务

    2011-11-02 18:25 by tyb1222, 848 visits, 网摘收藏编辑
     

    REST下的WCF的寄宿方式

    2011-10-28 15:50 by tyb1222, 752 visits, 网摘收藏编辑
     

    REST与SOA两种架构下WCF的异同比较(含源码)

    2011-10-27 17:19 by tyb1222, 1061 visits, 网摘收藏编辑
     

    REST 架构风格下的WCF特性简介

    2011-10-26 11:21 by tyb1222, 1281 visits, 网摘收藏编辑
     

    对REST架构的理解及Jquery+JSON+RESTful WCF (附源码)

    2011-10-24 02:50 by tyb1222, 1642 visits, 网摘收藏编辑
     


  • 相关阅读:
    Kubernetes 部署微服务电商平台(16)
    Android开发如何去除标题栏title
    eclipse中logcat偶尔不显示log的问题解决办法
    Two Sum
    事件的解除与绑定
    使用 Canvas 绘图
    表单脚本
    事件
    DOM2 和 DOM3
    DOM扩展
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2236652.html
Copyright © 2011-2022 走看看