ServiceStack项目实例002REST服务与客户端模式-创新互联

     ServiceStack框架提供三种模式的服务接口实现, REST  、Client 以及和WCF相兼容的SOAP WebService ,这三种模式统称WebService,目前对于移动平台和云服务火爆的情形下,最为普及的是REST模式。

成都创新互联公司的客户来自各行各业,为了共同目标,我们在工作上密切配合,从创业型小企业到企事业单位,感谢他们对我们的要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。专业领域包括成都网站建设、网站制作、电商网站开发、微信营销、系统平台开发。

WebService常用连接模式:

RESTClientSOAP WebService

     在不同模式下,可以使用不同的数据(流)格式,最为常用的是XML 、JSON , 主要使用在REST模式下,此外还支持JSV, CSV 以及SOAP格式的数据。

XMLJSONJSVCSVSOAP

 

     在前文中提到启动服务(SS项目),这种服务是一种×××面的,对外仅提供数据服务,通过一套自定义的API访问,在大型网站广为使用,比如微信、微博、淘宝及人人网、各种网盘开发API等。

     SS中,客户端连接到服务端的方式主要有两种,通过REST方式或者Client方式,初始化客户端是相同的 :

   

var service = new JsvServiceClient("http://localhost:2790/");

通过REST方式访问服务:

   

var storyResponses = service.Post<List<NewsResponse>>("newslist",
                new NewsAll() { cid=0 });

      其中service.后边的Post为HTTP指令,接下来要详细说明,NewsAll()为入口类,NewsResponse为出口类,使用时结构为:

HTTP 指令出口类("路由"入口类{ 传入参数 }

通过Client方式访问服务:


         

service.Send<SubmissionResponse>(new Submission()
                {
                    Body = news.Text,
                    Headline = news.Headline,
                    SubmissionTime = news.Date
                });

        Client模式的标志是使用Send函数 ,使用结构为:

Send出口类入口类{ 传入参数 }

       注意客户端 模式是不使用路由的,它的执行方式很类似软件中使用Socket连接模式,使用比HTTP协议更底层的高速数据通道来传输数据。

  一般来说客户端模式是比REST模式效率要高,但在服务端和客户端同时都使用了SS的情况下,框架会在内部自动将其都转换为客户端模式(可以支持二进制传输、文件上传下载等),所以使用REST模式和 使用客户端模式的差异并不大,具体使用哪种方式可以根据自己的习惯和喜好使用。

  下面说一下HTTP指令, 又称HTTP verb(HTTP动词),我们通常访问网站数据的方式有GET和POST,用于指定获取数据和交流的方式,它是被附加在HTTP的request请求上的,包含于HTTP头中(可以使用HTTP传输工具查看),使用了REST模式后,可以使用全套的HTTP指令,常用的有除了GET和POST,还有PUT、DELETE和PATCH、TRACE。

   HTTP指令在HTTP头中通常所有字母全部大写。

   GET用于获取数据操作,传递的参数通常是附加在URL上,数据大小限制一般为1-16k,可以返回单条或列表数据;

   POST用于获取、提交、文件上传等操作,传递的参数或数据通常使用表单提交,可以为文本也可以为二进制数据,二进制方式可以用于文件、图片上传,并且可自定义文件类型,POST提交的返回数据通常是状态信息,比如操作是否成功,操作得到的ID、记录条数等,而且通常会根据返回的状态信息执行跳转或处理异常等操作。在使用POST对REST模式的服务中,常用的是将其数据使用Insert语句保存到数据库。

  PUT用于更新数据操作,通常在REST模式下,将其数据使用Update语句更新到数据库。

  DELETE用于删除操作,在REST模式下,可以使用两种方式执行删除,一个方式是传递一个对象到服务,比如一个order订单对象(里边实际有效的仅仅是id字段),另一种方式传递一个id或一组id,执行数据库的删除操作。

  PATCH用于追加模式更新数据。

  TRACE回显提交的数据,可以用于调试以及查看服务端数据的变更。

  附 : ServiceStack 内置的 客户端实现,从中也可以看出无论REST还是客户端都是使用同样的类库:  未翻译

  • implements both IRestClient and IServiceClient:

    • JsonServiceClient (uses default endpoint with JSON) - recommended

    • JsvServiceClient (uses default endpoint with JSV)

    • XmlServiceClient (uses default endpoint with XML)

    • MsgPackServiceClient (uses default endpoint with Message-Pack)

    • ProtoBufServiceClient (uses default endpoint with Protocol Buffers)

  • implements IServiceClient only:

    • Soap11ServiceClient (uses SOAP 11 endpoint)

    • Soap12ServiceClient (uses SOAP 12 endpoint)

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

文章标题:ServiceStack项目实例002REST服务与客户端模式-创新互联
浏览路径:https://www.cdcxhl.com/article44/dpdoee.html

成都网站建设公司_创新互联,为您提供商城网站云服务器品牌网站设计网站内链网站设计网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站