首页
学习
活动
专区
圈层
工具
发布

13 个设计 REST API 的最佳实践

但是,就 REST API 设计本身而言,所涉及到的 HTTP 知识要点大概包含以下几条: HTTP 中包含动词(或方法): GET、POST、PUT、PATCH 还有 DELETE 是最常用的。...REST 是面向资源的,一个资源被一个 URI 所标识,比如 /articles/。 端点(endpoint),一般指动词与 URI 的组合,比如 GET: /articles/。...比如,如果一个 POST 类型的端点返回 201 Created,那么所有的 POST 端点都应返回同样的状态码。这样做的好处在于,调用者无需在意端点返回的状态码取决于某种特殊条件,也就形成了一致性。...这里是我自己总结的备忘录,它阐述了我如何在实际情况下,区分它们: 用户是否未提供身份验证凭据?认证是否还有效?这种类型的错误一般是未认证(401 Unauthorized)。...这种一般是未授权(403 Forbidden) 12.

3.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    REST API 设计最佳实践:如何构建、设计和使用 API ?

    但是,我也曾遇到过一些让 REST 蒙羞的 API 例子,错误使用 HTTP 状态码、纯文本响应、不一致的模式、插入端点中动词......(操作或方法):最常见的是GET、POST、PUT、PATCH和DELETE。...REST以资源为导向,资源由URI表示:/library/ 端点(endpoint)是动词和URI的组合,例如:GET: /books/ 端点可以理解为对资源执行的操作。...了解401未授权和403禁止之间的区别 如果我每看到一次开发人员甚至有经验的架构师搞砸这个问题就能得到一个25美分硬币……在处理REST API中的安全错误时,很容易弄混错误是与身份验证还是授权(又称权限...401 未授权。 消费者正确地进行了身份验证,但他们没有访问资源所需的权限/适当的许可吗? 403 禁止。 12.

    1.4K40

    CVE-2024-25600:WordPress Bricks Builder RCE

    prepare_query_vars_from_settings 方法的地方 可以看到query.php的Query类构造函数(__construct)能够直接触发prepare_query_vars_from_settings,需要的条件是进入...#render_element中存在Query的实例化,需要的条件就是loop_element为false,而其初始值为false,这里设置了ajax与rest api这两种请求方式。...非ajax请求element参数下没有参数loopElement,loop_elemet 将被置为 false ,即保证POST请求中保持没有loopElement即可保持为false。...理论上这些初始化定义的应该都是存在可用的,因此POC里面的name也可以是 section、block、div等 继续搜render_element的调用方法,发现在api.php中存在命名相同的方法调用了Ajax...#render_element,这里的api.php实际上是一个处理注册的 REST API 端点之一的文件 继续搜索调用,找到在它的自定义初始化端点函数,从中可以看到它定义了很多能够注册的REST路由

    47610

    REST API和GraphQL API的比较

    该数据可用于GET、PUT、POST和DELETE数据类型,指的是对资源的读取、更新、创建和删除操作。...TLS 确保两个系统之间的数据传输是私密且未更改的。支持 JavaScript 对象表示法 (JSON) 的 Web 令牌完成 HTTP 身份验证过程,以便从 Web 浏览器安全传输数据。...可用性 REST API 使用 URI 和 HTTP 技术,这使得 API 很难预测在联系新端点时会发生什么。REST 中缺少指定的版本控制要求允许提供者采用他们自己的方法。...缓存 REST API 的所有 GET 端点都可以缓存在服务器上或通过 CDN。它们也可以由客户端存储以供经常使用,并由浏览器缓存。...GraphQL 通过单个端点提供,通常是 (/graphql),并且与 HTTP 规范不同。因此,无法像 REST API 那样缓存查询。 但是,由于可用的工具,客户端缓存优于 REST。

    1.2K10

    使用Spring Boot设计和实现REST API

    REST端点用于集成应用程序或服务器端向客户端提供服务。在本文中,将介绍基于CRUD的SpringBoot来设计和实现REST端点。...设计和实施端点 端点应简短易用。例如,为了通过Id获取客户,我们可以使用/ customers / {id}这样的端点。...所有这些方法都有助于设计简单的REST端点,因为这是标准的,所以每个人都可以理解它们。 GET GET方法用于访问资源。要根据ID获取客户记录,我们可以使用/ customers / {id}等端点。...DELETE 此方法应用于删除请求。此请求的端点是/ customers / {id}。请求中的指定ID将从存储中删除。...@RequestMapping(value = "/{id}", method = RequestMethod.DELETE)ResponseEntity delete(@PathVariable

    2.2K30

    【ASP.NET Core 基础知识】--前端开发--使用ASP.NET Core和JavaScript进行通信

    设置后端API端点 首先,您需要在ASP.NET Core应用程序中设置一个API端点,用于处理AJAX请求并返回数据。...测试 现在,您可以运行ASP.NET Core应用程序,并访问包含AJAX请求的HTML页面。页面加载后,它将通过AJAX请求从后端API端点获取用户信息,并将其显示在页面上。...RESTful API则是基于REST原则构建的API,它使用HTTP协议进行通信,通过URL定义资源,并使用HTTP方法(GET、POST、PUT、DELETE等)对资源进行操作。...DELETE:用于删除服务器上的资源。 这些HTTP方法与CRUD操作(创建、读取、更新、删除)相对应。...您可以发送HTTP请求来测试GET、POST、PUT和DELETE操作,并验证API的行为。

    1.7K00

    REST API 最佳实践

    1.REST API 设计建议 1.用名词表示资源 当你设计一个 REST API 时,你不应该在端点路径中使用动词。端点应该使用名词,表示它们各自的作用。...如果你有一个像 https://mysite.com/post/123 这样的端点,用 DELETE 请求删除一个帖子,或用 PUT 或 PATCH 请求更新一个帖子,可能是可以的,但它没有告诉用户在这个集合中可能还有一些其他的帖子...3.在端点上使用嵌套显示关系 很多时候,不同的端点可以相互联系,所以你应该对它们进行嵌套,这样更容易理解它们。...删除:使用 DELETE 删除现有资源(幂等)。 简而言之,你应该让 HTTP 动词来处理端点的工作。...- Terminus Blog Delete multiple records using REST - Stack Overflow

    2.3K20

    SpringBoot应用跨域访问解决方案

    表示在多少秒之内不需要重复校验该请求的跨域访问权限 Access-Control-Allow-Methods: 表示允许跨域请求的HTTP方法,如:GET,POST,PUT,DELETE...}; } } 3.3.使用CrossOrigin注解(局部跨域配置) 将CrossOrigin注解加在Controller层的方法上,该方法定义的RequestMapping端点将支持跨域访问...将CrossOrigin注解加在Controller层的类定义处,整个类所有的方法对应的RequestMapping端点都将支持跨域访问 @RequestMapping("/cors") @ResponseBody...以下是跨域AJAX请求验证的核心代码: $.ajax({ url: 'http://localhost:8090/cors', type: "POST",...跨域请求配置失败表示:我们的跨域配置未生效,请参照检查第三节检查各项配置是否正确。

    1.2K10

    WordPress REST API 内容注入漏洞分析

    漏洞简介 在REST API自动包含在Wordpress4.7以上的版本,WordPress REST API提供了一组易于使用的HTTP端点,可以使用户以简单的JSON格式访问网站的数据,包括用户,帖子...WP REST API 首先来说一下REST API。...控制器 WP-API中采用了控制器概念,为表示自愿端点的类提供了标准模式,所有资源端点都扩展WP_REST_Controller来保证其实现通用方法。...五种请求 之后,WP-API还有这么几种请求(也可以想成是功能吧): HEAD GET POST PUT DELETE 以上表示HTTP客户端可能对资源执行的操作类型。...DELETE触发delete_item方法,将现在删除的发布数据返回给客户端。 静态追踪 知道了WP-API的路由信息以及其操作方式,可以根据其运行的思路来看一下具体实现的代码。

    3.8K70

    【Web前端】Web API:构建Web应用核心

    示例:使用 jQuery 的 AJAX API $.ajax({ url: "https://api.example.com/data", method: "GET", success...可识别的入口点 API 通常通过特定的 URL 路径(即“端点”)提供访问,每个端点对应于 API 提供的某种功能。...1、API 端点 在 RESTful API 中,端点是客户端与服务器之间交互的具体路径。每个端点通常对应着一种资源或一组相关的操作。...DELETE:删除资源(如移除不再需要的数据)。 可以看到 ​​fetch​​ 函数如何使用不同的方法来调用相应的 API 端点。...无论是在传输过程中还是存储时,加密都能有效防止未授权访问。例如,在传输层使用 HTTPS 协议可以确保数据在客户端与服务器之间传输时不会被窃听。

    1.1K10
    领券