首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Boot处理REST API错误正确姿势

在本文中,我们就来介绍在我们使用spring boot来构建REST API时如何更好更恰当处理错误信息。 ?...使用Spring来构建REST API现在基本上已经变成了java开发者事实上标准。...如果你仍然不确定如何开发基本REST API,那么你应该先去了解下有关Spring MVC文章,或者关于构建Spring REST服务文章。...我们将创建一个名为ApiError类,其具有足够字段来保存REST调用期间发生错误相关信息。 ? status属性:保存操作调用状态。 比如4xx客户端错误或5xx服务端错误。...下面是当我们发送一个POST /birds JSON串后,里边包含了非法值赋值给了鸟mass字段,然后返回了如下错误信息: ?

3.5K130

SpringBoot中REST API错误异常处理设计

RESTful API异常Exception处理有两个基本要求,需要明确业务意义错误消息以及hhtp状态码。良好错误消息能够让API客户端纠正问题。...在本文中,我们将讨论并实现SpringREST API异常处理。...比如下面是Springboot表示/api/producer不支持post方式错误信息: { "timestamp": 1530772698787, "status": 405,...2. error_code表示REST API特定错误代码。此字段有助于传递API /业务领域中特定信息。比如类似Oracle错误ORA-12345 3. message字段表示人类可读错误消息。...5. information_link字段指定有关错误或异常详细信息链接。 Spring REST错误处理 Spring和Spring Boot提供了许多错误/异常处理选项。

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

用ASP.NET Core 2.0 建立规范 REST API -- GET 和 POST

html 本文介绍是使用ASP.NET Core建立Richardson成熟度为2级伪RESTful web API, 本文介绍是GET和POST....状态码 状态码是非常重要,因为只有状态码会告诉API消费者: 请求是否如预期成功,或者失败 如果出现了错误,谁该为这个错误负责 下面再列举一下web API会用到状态码: 200级别,表示成功:...这样就和Post方法返回中用到路由名一致了,第二个参数是一个匿名类里面有个属性id,它会编程路由里参数,最后一个参数是响应会返回数据。...这次返回数据id为6,与前面不一样,所以POST不是幂等,它每次执行后结果是不一样。 创建子资源 Country创建做完了,现在可以创建City了。 ?...OK 如果POST到单个资源地址 如果POST到这个地址 http://localhost:5000/api/countries/{id},  那么, 如果该id资源不存在, 则应该返回404; 如果该

1.5K10

技术随笔:Rest Api设计中处理业务错误一些思考

对于Rest Api中要如何处理业务错误这个事情,这并不算是一个非常大问题。事实上,对大多数架构师来说,可能很多人都不会太在意这个点。...1. http响应码 我们都知道,http响应码是有它标准含义,一般而言,笔者建议遵守这个标准,http响应码从1XX到5XX都有其特定意义,但在Rest Api中,使用最多可能还是以2XX和4XX...3.2 发生错误时,不要返回 200 状态码 有一种不恰当做法是,即使发生错误,也返回200状态码,把错误信息放在数据体里面......再参考一些主流API设计,也可以看出其对此点设计方式 Github Api ? ZOOM API ?...当然,也有不是这样做,比如instagramAPI,它是通过meta字段来区分业务上正确与错误 ? 你是如何想?,见仁见智吧

1.8K10

KEGG数据rest API(附带R语言小技巧)

发现感兴趣KEGG ID居然不在KEGG.db包里面,比如: hsa05034 Alcoholism hsa05030 Cocaine addiction 导致下面的代码失效: library(KEGG.db...hsa04060']] KEGGPATHID2EXTID[['hsa05034']] KEGGPATHID2EXTID[['hsa05030']] 其实,即使不失效,也不能使用这种方法来找属于某个pathway基因集合了...搜索了一下,发现KEGG数据rest API,比如 http://rest.kegg.jp/get/hsa05034 (点击阅读原文可以直达) 本来准备读入到R里面,然后自己解析,发现其实已经有了R...unlist(lapply(gs[[1]]$GENE,function(x) strsplit(x,';')[[1]][1])) genes[1:length(genes)%%2 ==0] 当然了,这个R包功能不止如此...:https://bioconductor.org/packages/release/bioc/html/KEGGREST.html 我就不多演示了,感兴趣朋友去探索一下。

1.9K70

设计通过 POST 获取数据 API 时需要注意问题

现代网站越来越多使用前后端分离架构,先用前端 MVC 框架快速堆砌出 SPA,再用 API 获取动态数据也已经成为日常开发内容;而用来连接前后端 API,其重要性也自然言而喻。..."> 所支持两个方法;GET 是使用最频繁,无论是获取得页面还是数据,一般都会用 GET,而 POST 则常用在新增资源上,但由于 HTML 不支持其他方法,在传统网站中可能会用 POST 处里除了获取数据之外所有事情。...HTML、XML、JSON 等),让无状态网络通信能通过 REST 语意化设计,携带所有的状态进行通信,降低对网络重复请求而造成资源消耗。...缺点大概就是必须要把所有复杂数据拼接逻辑都实现在后端,对于习惯于 RESTful API 开发者来说,需要付出不少学习成本。

1.6K30

接口测试| 揭秘接口测试工具集

带你进入接口测试世界 接口测试好处 1) 提高测试质量 2) 提高测试效率 3) 提高测试覆盖率 4) 更好地重现软件缺陷 5) 更好定位错误 6) 降低修改bug成本 7) 降低了项目不能按时发布风险...; 2.在后台构造合适数据来满足接口测试用例; 3.根据接口返回值,断言其是否返回期望结果,并查看数据库验证; 4.测试用例涉及多个步骤,应对涉及步骤都验证 5.删除测试过程中产生结果,确保每个用例执行前都是一个清洁环境...With URL Params,如下图,首先创建会话对象Create Session,然后创建url参数Create Dictionary,发送post请求Post Request,最后断言Should...02 Rest Assured:基于Java编程,针对RESTFUL api Rest Assured是基于Java语言接口测试框架,来看一个demo: POST请求我们以登陆API为例, 请求方法...如何学习 现在,api测试工具已经很多,在工具选择上建议根据以下进行选择: 1.测试人员自身水平 不会代码选RobotFramework、postman、JMeter,懂JavaRest

2.6K30

如何确保API 稳定性与正确性?你只需要这一招

一、什么是rest-assured现在,越来越多 Web 应用转向了RESTful架构,很多产品和应用暴露给用户往往就是一组 REST API,这 样有一个好处,用户可以根据需要,调用不同 API...从这个角度来讲,Web 开发成本会越来越低,人们不必再维护自己信息孤岛,而是使用 REST API 这种组合模式。那么,作为 REST API 提供者,如何确保 API 稳定性与正确性呢?...使用 Rest-Assured 测试 REST API,就和真正用户使用 REST API 一样,只不过 Rest-Assured 让这一切变得自动化了。...当然,你也可以在GET时候往车厢内偷偷藏点货物,但是这是很不光彩;也可以在POST时候在车顶上也放一些数据,让人觉得傻乎乎。HTTP只是个行为准则,而TCP才是GET和POST怎么实现基本。...你可以定义一个ResponseSpecBuilder来实现这个功能:在这个例子中,需要重用两个断言数据被定义在"responseSpec",并且与另外一个body断言合并,组成了这 个测试用例中全部断言

1K20

再见!Postman!

所谓工欲善其事必先利其器,在没有尝到IDEA REST真香之前,postman(chrome一款插件)确实是一个非常不错选择,具有完备REST Client功能和请求历史记录功能。...但是当使用了IDEA REST之后,postman就可以丢了,因为,IDEA REST Client具有postman所有功能,而且还有postman没有的功能,继续往下看。...,干嘛要切换到另一个工具呢 然后IDEA REST Client还支持环境配置区分功能,以及接口响应断言和脚本化处理能力 IDEA REST Client请求配置可以用文件配置描述,所以可以跟随项目和项目成员共享...结果断言 IDEA REST Client可以针对接口响应值进行脚本化断言处理,立马从一个接口调试工具上升到测试工具了,比如: ### Successful test: check response...不同于已经出版一些小程序书籍只是简单罗列API文档,本书没有对API泛泛而谈,而是在项目实战中讲解API使用技巧,帮助读者更好地掌握小程序开发技术。

1.5K10

Flask测试和部署

""" # 使用客户端向后端发送post请求, data指明发送数据,会返回一个响应对象 response = self.client.post("/login", data...我们需要关注重点是如何设计REST风格网络接口。 REST特点: 具象。一般指表现层,要表现对象就是资源。比如,客户端访问服务器,获取数据就是资源。比如文字、图片、音视频等。...在这个过程中,一定会有数据和状态转化,这种转化叫做状态转换。其中,GET表示获取资源,POST表示新建资源,PUT表示更新资源,DELETE表示删除资源。...API应该提供参数,过滤返回结果。 实例: #指定返回数据数量 http://www.example.com/goods?...7.错误信息: 一般来说,服务器返回错误信息,以键值对形式返回。

1K20

目前市场上六种优秀API测试工具

Katalon Studio支持带有DELETE、PUT、POST等多种命令,以及参数化RESTful和SOAP请求。...除了免费开源,Katalon也为企业和小型团队提供了付费支持服务。 主要特点: 通过DELETE、PUT、GET、POST等多种命令类型,支持SOAP和RESTful请求,并具有参数化能力。...具有结合API和用户界面验证能力。 提供许多用于创建测试用例内置关键字。 支持数据驱动方法。 支持最具影响力断言库--AssertJ,可用于创建具有行为数据驱动风格流畅断言。...可为所有API测试创建可执行安全扫描。 提供高级尊享套餐。 支持数据驱动测试(可从excel、数据库和文件处加载数据),进而模仿客户机与API交互。 支持原生异步测试,以及与CI/CD集成。...支持测试结果重放。 支持团队通过CSV文件,为API测试快速创建异常数据(或参数值)。 通过与Jenkins整合,用户可以在CI管道中启用API测试。 可用于动态和静态资源性能测试。

2.1K11

测试RESTful Web服务工具-RESTClient

1、前言 RESTful Web服务是一种基于HTTP协议Web服务架构风格,它强调使用标准HTTP方法(GET、POST、PUT、DELETE等)来实现资源创建、读取、更新和删除,以及使用统一资源标识符...通过RESTful Web服务,客户端可以与服务器进行交互,获取或修改服务器上资源状态。这种架构风格具有轻量级、可扩展、易于维护和兼容性好等优点,因此在Web开发中得到了广泛应用。...测试RESTful Web服务常用测试工具有: Postman SoapUI JMeter Swagger Rest Assured Newman Karate HttpMaster Apache Bench...Gatling 这些工具都可以进行API测试和性能测试,具体选择哪个测试工具需要根据测试需求和实际情况进行选择。...响应码不等于200就报错为默认断言,这里修改为响应码不等于300就报错,再次执行,可以看到结果是失败

18600

【Rust日报】2022-11-08 bless.rs: 带你走入 Rust 生态

bless.rs: 带你走入 Rust 生态 与 Python 和 Go 等其他编程语言相比,Rust 标准库非常小,仅包含一些核心数据结构,所有其他功能都交给第三方 crate 去完成,Rust 新手一个常见抱怨是...bless.rs 列举了 Rust 开发中最常用一些库,包括了网络开发、并发、日志、命令行、错误处理等各个方面,将它作为你 Rust crate cheat sheet 再合适不过了。...Hurl 发布 1.8.0 版本 Hurl 是一个开源命令行处理工具,能让你通过普通文本文件,测试 REST API 和 HTML 内容。...其基于 curl 实现,具有轻量,跨平台优点,能够很好地集成到 CI/CD, Github Action 等环节中。...下面是 Hurl 一个示例 POST https://example.org/api/tests { "id": "4568", "evaluate": true } HTTP/1.1

34730

学会 IDEA 中这个功能,就可以丢掉 Postman 了

所谓工欲善其事必先利其器,在没有尝到IDEA REST真香之前,postman(chrome一款插件)确实是一个非常不错选择,具有完备REST Client功能和请求历史记录功能。...但是当使用了IDEA REST之后,postman就可以丢了,因为,IDEA REST Client具有postman所有功能,而且还有postman没有的功能,继续往下看。...,干嘛要切换到另一个工具呢 然后IDEA REST Client还支持环境配置区分功能,以及接口响应断言和脚本化处理能力 IDEA REST Client请求配置可以用文件配置描述,所以可以跟随项目和项目成员共享...,IDEA就会让你选执行那个环境配置,如: 图片 结果断言 IDEA REST Client可以针对接口响应值进行脚本化断言处理,立马从一个接口调试工具上升到测试工具了,比如: ### Successful...推荐阅读 Spring Boot 3.0.3、Spring Cloud 2021.0.6 发布 普通人也能上手使用数据库与API搭建平台 谷歌最好程序员:我用过 18 种编程语言 ······

25910

便捷接口调测:API 开发工具大比拼 | 开源专题 No.62

pyresttest 是一个 REST 测试和 API 微基准测试工具,它可以通过简单 YAML 或 JSON 配置文件定义测试,并且不需要编写代码。...该项目具有以下核心优势: 轻量级:采用简约 UI 设计。 快速:实时发送请求并获得响应。 支持多种 HTTP 方法,如 GET、POST、PUT 等。...具有丰富请求功能,例如复制/分享公共 URL、生成代码片段以及导入 cURL 等操作方式。...Hurl 非常灵活:可用于获取数据和测试 HTTP 会话,并且适用于处理 HTML 内容、REST / SOAP / GraphQL API 或任何其他基于 XML / JSON API。...可以链式调用多个请求 支持不同类型查询和断言,包括 XPath 和 JSONPath 等 适合 REST/JSON API、HTML 内容、GraphQL 甚至 SOAP API 等使用场景 方便集成到

19710

Selenium结合Unirest和JTwig进行API测试

如果你只需要测试api,那么建议浏览这篇文章:Jmeter如何测试REST API /微服务[1] Web UI测试存在问题: 慢(这是因为你浏览器首先向服务器发送一个请求以获取某些信息,一旦获得所需数据...REST API测试:与Selenium WebDriver UI测试相比,REST API测试并不难,大多数api都是GET / POST / PUT / PATCH / DELETE请求之一: GET...JMeter – 如何测试REST API / 微服务[2] JMeter – REST API Testing – 一个完整数据驱动方法[3] 微服务 – 契约测试[4] 假设你使用testNG/Junit...这样框架,并使用Selenium进行应用程序UI测试 --而现在希望在相同框架中也包含API测试 --可能需要快速设置数据断言等,那么接下来就让我们看看如何在本文中完成。...也可以在测试框架中进行简单断言

1.4K20

Salesforce LWC学习(三十五) 使用 REST API实现不写Apex批量创建更新数据

那么,针对批量数据场景,是否有什么方式可以不需要apex,直接前台搞定吗?当然可以,我们可以通过调用标准rest api接口去搞定。...我们在上一篇讲述了标准rest api,那OK,我们可以尝试不适用后台apex方式去搞定,而是在前台通过rest api去玩一下,说到做到,开弄。...进行了错误这次请求展开,将 response内容展开,发现了问题 ?...破案了,后台通过 UserInfo.getSessionId获取session信息无法用于REST API授权,这里就会有一个疑问,因为艾总发过来了一个VFdemo,是可以通过rest去调用,难道是...总结:篇中只展示了一下通过 REST API去批量操作数据可行性,仅作为一个简单demo很多没有优化,异常处理,错误处理等等。而且对数据量也有要求,200以内。

2.2K40

便捷接口调测:API 开发工具大比拼 | 开源专题 No.62

该项目具有以下核心优势: 轻量级:采用简约 UI 设计。 快速:实时发送请求并获得响应。 支持多种 HTTP 方法,如 GET、POST、PUT 等。...具有丰富请求功能,例如复制/分享公共 URL、生成代码片段以及导入 cURL 等操作方式。...除此之外还有以下优点: 可以在线使用或下载安装 提供了强大插件系统来增强其功能 支持多语言:中文和英文 多协议支持:HTTP REST 和 Websocket 包含API 文档设计与测试 Mock 功能...Hurl 非常灵活:可用于获取数据和测试 HTTP 会话,并且适用于处理 HTML 内容、REST / SOAP / GraphQL API 或任何其他基于 XML / JSON API。...可以链式调用多个请求 支持不同类型查询和断言,包括 XPath 和 JSONPath 等 适合 REST/JSON API、HTML 内容、GraphQL 甚至 SOAP API 等使用场景 方便集成到

35610

Spring 发送 JSON 数据API 时候提示 Unsupported Media Type 错误

在我们调试 API 时候,我们可以向服务器发送 POST 数据。...在 POST 数据时候,我们可能会使用 JSON 为数据源,但是在发送后,我们得到下面的错误信息: { "timestamp": 1611687768255, "status": 415..., "error": "Unsupported Media Type", "message": "", "path": "/re/sold" } 问题和解决办法 出现这个错误原因是你发送数据是...JSON 格式没有错,但是 HTTP 不知道你发送数据是 JSON 格式,这个时候 API 会没有办法识别你数据的话,会提示上面的错误。...修改办法为在 POSTMAN 类型中,选择 JSON 格式后重新发送请求。 如果你 API 配置正常的话,你就可以正确看到 API 返回了。 同时也能够看到 API 返回正确数据

1.3K40
领券