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

API 错误码不统一?六类错误响应的落地模板(JSON示例+表格)

一句话承诺:提供可抄的错误响应模板与分类表,快速统一前后端的错误处理。...分类表 分类 典型HTTP 建议码段 示例 验证错误 400 1000-1999 字段缺失、格式错误 未认证 401 2000-2099 Token无效或过期 无权限 403 2100-2199 角色不匹配...资源未找到 404 3000-3099 ID不存在 业务冲突 409 4000-4099 状态不允许 服务器错误 500 5000-5999 异常未捕获 JSON 模板(可统一落地) { "code...对验证错误提供 details 数组,便于前端逐项提示。 常见坑与替代法 坑:把所有错误都返回 200。替代:语义化HTTP码,有助于中间件与缓存策略。 坑:错误码无规则。...替代:贯穿全链路的请求ID,便于定位问题。 下一篇预告 JWT“过期刷新”太混乱?最简单的刷新策略与黑名单设计(时序图)。

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

    如何解决百度地图 JavaScript API GL 出现中心点位置偏移的问题

    目录 前言 问题描述:地图中心点位置偏移 剥丝抽茧:问题排查过程 1. 初步怀疑 API 的问题 2. 与项目大屏动态地图宽度功能的冲突 3....一开始,我觉得奇怪,甚至怀疑是百度地图 JavaScript API GL 本身有问题,但经过一番研究后,才发现是自己代码中的一个细节问题引发了这个 bug。...需求看似很简单,但在实际运行时,我们发现地图的点位始终偏离预期,甚至有时整个地图会偏移到看不见的位置。 下图是问题出现时的效果: 原本的效果是,定位到一个制定的中心点,中心点周围有这个区域的轮廓边界。...初步怀疑 API 的问题 最初,我怀疑是百度地图 API 的 bug,特别是 centerAndZoom 方法没有生效。于是我尝试了以下排查: 检查 centerPoint 的经纬度是否正确。...如果我一开始就是设置的定宽和定高,就不会出现这个问题。由此推测,这可能与项目中的动态宽高调整有关。

    1K10

    RESTful 最佳实践

    本文将介绍如何设计易于理解和使用的 API,并且借助 Docker api 的实践说明。...published=true ” 过滤信息(Filtering) 状态码如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。 下面是一些常见的参数。 ?...limit=10:指定返回记录的数量 ?offset=10:指定返回记录的开始位置。 ?page=2&per_page=100:指定第几页,以及每页的记录数。 ?...zoo-id=ID 的含义是相同的。推荐后者,避免出现多级URL。 2.1 状态码必须精确 客户端的请求,服务请求都必须响应,包含 HTTP 状态码和数据。...服务器响应 3.1 不要返回纯文本 API 返回的数据格式,不应该是纯文本,而应该是一个 JSON 对象,因为这样才能返回标准的结构化数据。

    1.3K10

    【RESTful】RESTful API 接口设计规范 | 示例

    概念 本质:一种软件架构风格 核心:面向资源设计的API 解决问题: 降低开发的复杂性 提高系统的可伸缩性 例如:设计一套API,为多个终端服务。...状态码:当客户端发送一个请求时,服务端应当响应什么状态码 错误处理:如当发现客户端传入的参数有问题时,该返回什么样的状态信息。.../zoos/ID : 删除某个动物园 过滤信息 如果记录数量过多,服务器不可能都将它们返回给用户。...筛选时,API应该提供一个参数,过滤一下返回的结果。 例如: ?offset = 10 :指定返回记录的开始位置 ?page = 2&per_page = 100 :指定第几页,以及每页的记录数 ?...422,403… 错误处理:输出JSON格式错误信息 返回结果:输出JSON数组或JSON对象 数据库设计 在数据库中新建2张表: 用户表: ID、用户名、密码、注册时间 文章表: 文章ID、标题、内容

    3.4K20

    探索RESTful API开发,构建可扩展的Web服务

    自描述性: API响应应该包含足够的信息,以便客户端能够理解如何使用该响应。为什么选择PHP构建RESTful服务?现在您可能想知道,为什么选择PHP来构建RESTful服务呢?...$success) { // 如果删除失败,则返回错误响应 http_response_code(500); echo json_encode(array('error...以下是如何设计良好的错误处理机制和自定义错误响应的详细实现:设计良好的错误处理机制在设计良好的错误处理机制时,我们应该考虑以下几个方面:捕获异常: 在代码中,我们应该使用try-catch块来捕获可能发生的异常...记录错误信息: 当捕获到异常时,我们应该记录错误信息,以便于后续的故障排除和调试。可以将错误信息记录到日志文件中或将其发送到监控系统。...提供友好的错误消息: 向客户端返回友好的错误消息,以帮助用户理解发生了什么问题,并可能提供解决方案。

    2.5K00

    微服务之API Gateway和Netflix Zuul

    就像上图中所描述的一样,Zuul 提供了四种过滤器的 API,分别为前置(Pre)、后置(Post)、路由(Route)和错误(Error)四种处理方式。...一个请求会先按顺序通过所有的前置过滤器,之后在路由过滤器中转发给后端应用,得到响应后又会通过所有的后置过滤器,最后响应给客户端。在整个流程中如果发生了异常则会跳转到错误过滤器中。...在请求完成后需要处理的操作放在后置过滤器中完成,例如统计返回值和调用时间、记录日志、增加跨域头等行为。...null,有可能会导致 iOS 低版本的某些兼容问题 统计 Gateway 可以统一收集所有应用请求的记录,并写入日志文件或是发到监控系统,相比 Nginx 的 access log,好处主要也是二次开发比较方便...错误过滤器 错误过滤器的主要用法就像是 Jersey 中的 ExceptionMapper 或是 Spring MVC 中的 @ExceptionHandler 一样,在处理流程中认为有问题时,直接抛出统一的异常

    1.6K10

    RESTful API 最佳实践

    Response 采用JSON,不要使用XML 默认情况下JSON外层不需要嵌套大括号,API需要支持JSONP跨域访问或者客户端无法访问HTTP Header才需要加上嵌套大括号 默认情况下不要过滤API...注意,用来覆盖HTTP方法的header只能在POST请求中被接受。GET请求永远不能修改服务器上的数据。 8.过滤信息 如果记录数量很多,服务器不可能都将它们返回给用户。...API应该提供参数,过滤返回结果。 下面是一些常见的参数: ?limit=10:指定返回记录的数量 ?offset=10:指定返回记录的开始位置。 ?...API至少把所有400系列错误统一用易读的JSON格式来展示。如果可能(比如,如果负载均衡和反向代理能够创建自定义错误内容的话),500系列的状态码也这么弄。...JSON错误内容应该为开发者提供一些东西 – 有用的错误消息,唯一的错误码(通过它可以在文档中找到更多错误细节),可能的话提供错误细节描述。

    2.2K31

    赏心悦目的RESTful API这样来设计!

    本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。...sort=score_desc 按照学生分数降序进行排序 上述所有的方式我们都可以做到"望 URL 知意",这就是好的设计 返回结果 RESTful API 的返回结果也是设计环节中重要的一环 响应数据格式...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError...API 文档 Swagger是一种广泛使用的工具来用来记录与呈现 REST API,它提供了一种探索特定 API 使用的方法,因此允许开发人员理解底层的语义行为。...欢迎交流你们在团队中是如何设计 RESTful API 的,遇到了哪些问题,是如何解决和规范的 - END -

    1.9K10

    如何设计好的RESTful API

    本文总结 RESTful 的设计细节,介绍如何设计出易于理解和使用的 API。...sort=score_desc 按照学生分数降序进行排序 上述所有的方式我们都可以做到"望 URL 知意",这就是好的设计 返回结果 RESTful API 的返回结果也是设计环节中重要的一环 响应数据格式...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError...API 文档 Swagger是一种广泛使用的工具来用来记录与呈现 REST API,它提供了一种探索特定 API 使用的方法,因此允许开发人员理解底层的语义行为。...欢迎交流你们在团队中是如何设计 RESTful API 的,遇到了哪些问题,是如何解决和规范的

    2.2K20

    深入理解RESTful API的设计原则

    RESTful API的设计原则包括: 用URI来标识资源 通过HTTP方法来操作资源 使用HTTP状态码来表示操作结果 支持内容协商,可以返回不同的格式,如JSON、XML等 如何设计RESTful...HTTP方法的使用:GET方法用于查询资源,POST方法用于创建资源,PUT方法用于更新资源,DELETE方法用于删除资源。 URI参数的使用:URI参数应该用于对资源进行过滤、排序等操作。...返回结果的格式:RESTful API应该支持内容协商,可以返回不同的格式,如JSON、XML等。 如何实现RESTful API? 在实现RESTful API时,我们需要选择合适的框架和工具。...性能优化:RESTful API应该支持缓存、分页、批量操作等功能,以提高API接口的性能和响应速度。 错误处理:RESTful API应该返回清晰、易懂的错误信息,以便客户端进行处理。...我们强调了资源的命名、HTTP方法的使用、URI参数的使用、HTTP状态码的使用、返回结果的格式等方面的重要性,并提出了安全性、性能优化、错误处理和日志记录等方面的建议。

    59730

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

    不要返回纯文本 尽管并非强制规定的,但大多数REST API通常约定使用JSON作为数据格式。然而,仅返回包含JSON格式字符串的响应体是不够好的。您还应该指定Content-Type标头。...在响应体中返回错误详情 当API服务器处理错误时,将错误详细信息包含在JSON主体中可以帮助使用者进行调试,这是是非常方便的,如果您还能说明哪些字段受到了错误的影响,那就更好了!...尽管如此,你可能还在想:“但我按照您推荐的方式,在响应体中发送了错误详细信息,那么问题出在哪里呢?” 让我给你讲个故事吧。...现在问题来了:如何将这样的功能融入REST API? 我的答案是:使用查询字符串(querystring)。 我认为使用查询字符串实现分页非常明显。它看起来像这样: GET: /books?...如果资源以某种方式已经存在,但这不应被视为错误。 13. 使用专门针对REST API的网络框架 作为最后一个最佳实践,让我们讨论这个问题:如何在您的API中实际应用最佳实践?

    2.2K40

    RESTful设计方法和规范

    因此,不论你是使用 API 的前端开发人员,还是直接开发 API 接口的后端开发人员,都必须熟悉 RESTful Web 规范,否则将很难同其他人配合。 如何学习RESTful ?...过滤信息(Filtering) 如果记录数量很多,服务器不可能都将它们返回给用户。API 应该提供参数,过滤返回结果。...另外,如果想在一次考试后,按照成绩高低展示学生信息,那么可以通过过滤信息来实现。 所谓过滤,就是在 URL 中添加一下限制参数。下面是一些常见的参数。 ?limit=10:指定返回记录的数量 ?...不同的状态码代表着不同的含义,比如以 2 开头的状态码通常代表服务器成功响应,3 开头的状态码代表发生了重定性(即跳转到了别的链接),4 开头的状态码通常表示客户端这边提供的信息有误,而 5 开头的状态码则表示服务器内部出现的错误...通过返回的状态码,用户即可判断请求成功与否,不成功问题在何处。

    49710

    深入理解 Nest.js 控制器:构建强大的RESTful API

    在本文中,我们将深入探讨 Nest.js 控制器的工作原理和用法,为您提供有关如何构建强大的 RESTful API 的深入理解。什么是 Nest.js 控制器?...控制器是 Nest.js 应用的核心之一,因为它们负责应用程序的业务逻辑,以及如何响应来自客户端的请求。...异常处理Nest.js 控制器还提供了强大的异常处理机制,以处理在请求处理过程中可能出现的错误和异常。...中间件Nest.js 控制器还支持中间件,中间件是一种可插入的组件,可以在请求到达控制器之前或响应返回给客户端之前执行一些逻辑。中间件可以用于日志记录、身份验证、数据转换等用途。...,它会记录请求的 URL。

    1K20

    【ASP.NET Core 基础知识】--Web API--创建和配置Web API(二)

    创建异常处理控制器 创建一个用于处理异常的控制器。在控制器中,你可以定义返回给客户端的错误响应的格式和内容。...", title: "Internal Server Error"); } } 上述代码中,Problem方法用于返回一个标准的问题详情,其中包含错误的详细信息。...这有助于统一处理应用程序中的异常,提供一致的错误响应,并记录必要的异常信息以进行调试和监控。...这是确保Web API安全性的关键步骤。 另外,我们介绍了全局异常处理的实现,帮助在应用程序中统一处理异常,提供一致的错误响应,并记录必要的异常信息以进行调试和监控。...最后,我们学习了如何集成日志记录,以便更好地监控和调试应用程序。通过使用内置的日志系统,我们能够灵活地配置和记录应用程序的日志。

    1.5K01

    接口测试 | 27 HTTP接口详细验证清单

    状态码410 Gone响应代码是一种未得到充分利用的响应代码,该代码通知客户端在该URL中使用的资源,但不再是。可以在您的API中使用它来表示已删除、归档或过期的项。...Error Handling in Chunked Transfer Encoding, 在执行并实现分块传输编码之前,要弄清楚如何处理在请求中出现的错误。...URL Length,如果API支持复杂的或任意的过滤选项作为GET参数,请记住,客户端和服务器都可以在超过2000个字符的URL上存在兼容性问题。...格式=json),也可以将内容协商资源重定向到特定的格式。 URI Templates, URI模板是一种定义良好的机制,用于向客户端提供URL组合功能,或者将URL访问模式记录到终端用户。...Error Logging, 确保有日志机制记录API的错误,并将用户输入导致的错误与应用程序的错误分开记录 内容 Content Types, 要把内容类型进行详细的阐述可能需要一整本书。

    1.8K60

    面试必备:接口自动化测试精选面试干货

    :比如,当测试一个删除接口时,删除一条记录后,想验证这条记录真的被删除,可调用查询接口,若删除的记录没被查询到,则说明删除这条记录成功。...八、赖于第三方数据的接口如何进行测试? 可以利用一些Mock工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖。...2)B的某些场景很难去模拟:比如超时、未知错误或者不稳定的第三方接口。 3)性能测试中隔离B接口(第三方接口):在进行压测的时候就会遇到问题。 九、API测试有哪些优势?...,需要添加一个信息头Content-type:application/json; 500:服务器内部错误,出现这种情况,说明服务端内部报错了,需要登录到服务器上,检查错误日志,根据具体的提示信息再进行排查...从以下两种情况分析: 如果单次调用接口就报该错误,说明是后端服务器配置有问题,或者服务不可用,挂掉了; 如果并发压测时出现此错误,说明是后端压力太大,出现异常,此问题一般是后端出现响应时间过长或者无响应造成

    1.1K40

    前端要知道的RESTful API架构风格

    自己在写Node服务时你遇到如何定义好接口的问题吗?下面介绍一种API架构风格,也是目前主流的API设计风格,你或许一直在使用。 ? RESTful API 示例 REST是什么?...意思是每一个响应都是可以被查询的、都是可以被过滤的,我们给接口加上一些限制条件就只能返回符合这些条件的结果。 分页。本质上也是一种查询,如果列表信息非常长的话应该加上分页信息 字段过滤。...404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。...410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...,下载文件 POST 方式请求 api/file - 上传创建文件 DELETE 方式请求 api/file - 删除某个文件 常见笔试题:什么是 RESTful API,如何设计RESTful API

    1.2K30

    RESTful API 主流API风格

    宾语:URL 应该全部使用名词复数,可以有例外,比如搜索可以使用更加直观的 search 。 过滤信息(Filtering) 如果记录数量很多,API应该提供参数,过滤返回结果。 ?...limit=10 指定返回记录的数量 ?offset=10 指定返回记录的开始位置。...415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。...5xx 状态码 5xx状态码表示服务端错误。一般来说,API 不会向用户透露服务器的详细信息,所以只要两个状态码就够了。...不要返回纯本文 API 返回的数据格式,不应该是纯文本,而应该是一个 JSON 对象,因为这样才能返回标准的结构化数据。

    3.6K11
    领券