zoukankan      html  css  js  c++  java
  • Restful

    Restful对应的中文是rest式的;或者叫rest风格的
    rest式的web服务是一种ROA(The Resource-Oriented Architecture)(面向资源的架构).

    在Restful之前的操作:
    http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
    http://127.0.0.1/user/save POST 新增用户
    http://127.0.0.1/user/update POST 修改用户信息
    http://127.0.0.1/user/delete GET/POST 删除用户信息

    RESTful用法:
    http://127.0.0.1/user/1 GET 根据用户id查询用户数据
    http://127.0.0.1/user POST 新增用户
    http://127.0.0.1/user PUT 修改用户信息
    http://127.0.0.1/user DELETE 删除用户信息

     

    一旦定义好了资源, 需要确定什么样的 actions 应用它们,这些 actions 怎么映射到你的 API 上。RESTful 原则提供了 HTTP methods 映射作为策略来处理 CRUD actions,如下:

    GET /tickets - 获取 tickets 列表
    GET /tickets/12 - 获取一个单独的 ticket
    POST /tickets - 创建一个新的 ticket
    PUT /tickets/12 - 更新 ticket #12
    PATCH /tickets/12 - 部分更新 ticket #12
    DELETE /tickets/12 - 删除 ticket #12
    REST 非常棒的是,利用现有的 HTTP 方法在单个的 /tickets 接入点上实现了显著的功能。没有什么方法命名约定需要去遵循,URL 结构是整洁干净的。 REST 太棒了!

    接入点的名称应该选择单数还是复数呢?keep-it-simple原则可以在此应用。虽然你内在的语法知识会告诉你用复数形式描述单一资源实例是错误的,但实用主义的答案是保持URL格式一致并且始终使用复数形式。不用处理各种奇形怪状的复数形式(比如person/people,goose/geese)可以让API消费者的生活更加美好,也让API提供者更容易实现API(因为大多数现代框架天然地将/tickets和/tickets/12放在同一个控制器下处理)。

    但是你该如何处理(资源的)关系呢?如果关系依托于另外一个资源,Restful原则提供了很好的指导原则。让我们来看一个例子。SupportFu的一个ticket包含许多消息(message)。这些消息逻辑上与/tickets接入点的映射关系如下:

    GET /tickets/12/messages - 获取ticket #12下的消息列表
    GET /tickets/12/messages/5 - 获取ticket #12下的编号为5的消息
    POST /tickets/12/messages - 为ticket #12创建一个新消息
    PUT /tickets/12/messages/5 - 更新ticket #12下的编号为5的消息
    PATCH /tickets/12/messages/5 - 部分更新ticket #12下的编号为5的消息
    DELETE /tickets/12/messages/5 - 删除ticket #12下的编号为5的消息

  • 相关阅读:
    UVALive 6044(双连通分量的应用)
    hdu 3760(2次bfs求最短路)
    zoj 3370(二分+二分图染色)
    sgu 326(经典网络流构图)
    hdu 4291(矩阵+暴力求循环节)
    uva 11381(神奇的构图、最小费用最大流)
    hdu 4685(匹配+强连通分量)
    hdu 4496(并查集)
    hdu 4722(记忆化搜索)
    Linux安装Nginx使用负载均衡
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/10609539.html
Copyright © 2011-2022 走看看