代码之家  ›  专栏  ›  技术社区  ›  Jen

了解REST实体(基于请求和响应的变化)

  •  1
  • Jen  · 技术社区  · 16 年前

    当我要求价格时,我需要回去:

    <Property id=””>
      <Rooms>
        <Room>
          <Rates>
            <Rate></Rate>
          </Rates>
        </Room>
      </Rooms>
    </Property>
    

    <Property id=””>
       <Rooms>
         <Room>
         </Room>
       </Rooms>
    </Property>
    

    我的get rooms请求只需要作为输入

    <property id=””></property> 
    

    但是基于属性的完整定义-当我生成示例getroomsRequest xml结构时,它包含了顶部示例中的所有内容。

    谢谢!不确定什么是可能的/最佳实践。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Darrel Miller    16 年前

    您开始有困难的原因是您试图在域概念(属性、房间、费率)和REST资源之间创建直接映射。

    在我看来,REST资源应该代表系统的用例,例如“Property/1/RoomRates”、“Property/1/Rooms”。与域层相比,资源更像是一个UI层。

    一些REST框架已经开始实现一些机制,允许您在查询字符串上指定需要返回哪些数据。在我看来,这是一个非常糟糕的主意。它严重限制了缓存的有用性,并且在客户机和服务器之间创建了更多的耦合。

    不要害怕在REST系统中创建新资源,即使它与业务层中的任何内容都不相关。开发人员在设计基于REST的系统时遇到的大多数问题都可以通过创建一个或两个新概念作为资源来解决。