• rest api设计


    rest api设计

    CRUD简介

    基于 CRUD 的 API 是指提供包含实例的资源集合的 API,效仿 create、read、update 和 delete 生命周期模式。当有一组代表内容或状态的资源实例时,CRUD 模式很有用,它通常遵循以下模式:

      • GET /articles – 列出/分页/过滤文章列表
      • POST /articles – 创建新文章
      • GET /articles/{articleId} – 获取文章详情
      • PATCH /articles/{articleId} – 更新文章详情
      • DELETE /articles/{articleId} – 删除指定ID的文章

     一个严重的误解是 REST 的 API 必须是基于 CRUD 的,这两者之间没有任何的联系,都只是API设计风格的一种方式而已。

    在讨论 CRUD 之外的API风格之前,需要澄清一个关于 REST 的严重误解:

    CRUD 并不是对 RESTful API 的要求。

    事实上,在 Fielding’s dissertation 的论文中并没有提及 CRUD 。

    在谈到基于 REST 的 API 时,很多人将利用基于 CRUD 风格的资源与 REST 风格混淆一起。

    REST 是规范客户端和服务端之间通讯的方式,利用 HTTP 协议提供的功能,这些限制可以自由地专注于 API 设计:

      1. 统一的接口:来自不同客户端的请求都是一样的,无论客户端是浏览器、移动设备还是其他任何设备
      2. 客户端-服务端分离 :客户端和服务端独立运行,它们之间的交互仅以请求和响应的形式进行
      3. 无状态 :服务端不存储使用 API 的用户的任何信息,因此客户端必须在每次请求时提供处理请求的所有必要信息
      4. 分层系统:客户端不知道在客户端和响应请求的实际服务器之间有多少层,这是 HTTP 的一个关键原则,允许缓存服务器、反向代理和访问安全分层——所有这些对发送请求的客户端都是透明的
      5. 可缓存 : 服务端响应必须包含有关数据是否可缓存的信息,允许客户端或代理在 API 服务器之外缓存数据
      6. 按需代码(可选):能够根据请求将可执行代码从服务器发送到客户端,从而扩展客户端功能。

     同样,REST 不需要具有基于 CRUD 风格的资源。CRUD 是一种我们可以应用于 REST 的 API 风格,但它不是构成基于 REST API 的必要条件。

    这在设计 API 时可以更加的自由,这样可以在适当的时候提供具有基于 CRUD 风格的资源,而在不需要CRUD的时候混合使用功能性资源。

    在设计 API 时,不必局限于这种风格,可以探索一些其他扩展风格,可以帮助设计出满足当前和未来开发需求的出色的API风格。

  • 相关阅读:
    supervisor 安装与使用
    CF39C-Moon Craters【dp】
    NWERC2020J-Joint Excavation【构造,贪心】
    CF25E-Test【AC自动机,bfs】
    CF19E-Fairy【树形结构,差分】
    CF11D-A Simple Task【状压dp】
    CF5E-Bindian Signalizing【单调栈】
    P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】
    CF666E-Forensic Examination【广义SAM,线段树合并】
    CF235D-Graph Game【LCA,数学期望】
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/16135308.html
Copyright © 2020-2023  润新知