• Rest风格的Web开发


    业务场景:

    以某零件公司的零件仓库Web服务为例来解释REST Web服务的基本思想。部署在服务器上的零件仓库对外发布一些服务,从而客户能够:

    l 获取 一 份元件清单。

    l 获取某个特定元件的详细信息。

    l 提交一个采购清单(OP)。

    l 获取元件清单

    实现:

    由 于 基 于 REST的Web服务可以通过一个URI来访问,因此调用一个Web服务就十分简单。顾客在订购单(Order1)里需要获得零件的列表,假设有一个 Web服务PartsList实现此功能,那么使用http://www.anycorp.com/PartsList即可得到零件列表。客户只需这样调 用,至于服务器端如何实现,对客户来说是透明的。因为对客户是透明的,所以服务器可以自由的修改资源而不影响客户,实现了松散藕合的特性。

    客户知道使用前面的URL 后,那么服务器将返回包含零件列表的一个文档,即:

    <? xml version”1.0”>

    <p:Parts xmlns:p=”http://www.anycorp.com

    Xmlns:xlink=”http://www.w3.org/1999/xlink”>

    <Part id = “00345” xlink:href = “http://www.anycorp.com/PartsList/00345”>

    <Part id = “00346” xlink:href =“http://www.anycorp.com/PartsList/00346”>

    </p:Parts>

    返回的文档中包含了对各个零件的链接,客户选择合适的链接可以将该链接指向的资源迁移到客户,实现客户状态的自维护,这是REST的关键特征。获取某个特定元件的详细信息

    如果想要以XML形式返回每个零件详细的信息,只需在URL后加上零件编号参数,比如http://www.anycorp.com/PartsList/00345,则会返回如下的文档:

    <? Xml version=”1.0”>

    <p:Part xmlns:p=”http://www.parts-depot.com

    Xmlns:xlink=”http://www.w3.org/1999/xlink”>

    <Part-ID>00345</Part-ID>

    <Name>Widget-A</Name>

    <Description>This part is used within the frap assembly</Description>

    <Specification xlink:href=”http://www.anycorp.com/PartsList/00345/specification”/>

    <UnitCost currency=”USD”>0.10</UnitCost>

    <Quantity>10</Quantity>

    </p:Part>

    从以上返回的数据看,这个数据又链接到更多的数据。客户可继续选择这些链接以获得更详细的数据,这正是REST的关键所在。

    提 交一个采购清单(OP),这个服务利用一个指向PO提交的URL。客户依照零件仓库预先定义的PO格式创建一个PO实例文档。客户将PO.xml作为 HTTP POST承载的内容提交上来。PO服务响应此PO提交请求,从而客户可以随时检索、更新、编辑这个PO。PO 于是成为客户端与服务器端共享的一段信息。共享信息(PO)由服务器端指定的URL访问,并暴露为一个Web服务。

  • 相关阅读:
    java实现第五届蓝桥杯六角幻方
    java实现第五届蓝桥杯六角幻方
    java实现第五届蓝桥杯六角幻方
    java实现第五届蓝桥杯海盗分金币
    java实现第五届蓝桥杯海盗分金币
    java实现第五届蓝桥杯海盗分金币
    java实现第五届蓝桥杯海盗分金币
    java实现第五届蓝桥杯海盗分金币
    jQuery异步上传文件
    关于心跳ajax请求pending状态(被挂起),stalled时间过长的问题。涉及tcp连接异常。
  • 原文地址:https://www.cnblogs.com/zhishan/p/3048742.html
Copyright © 2020-2023  润新知