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

译:如何使用Spring优雅地处理REST异常

概览 本文将举例说明如何使用Spring来实现REST API的异常处理。我们将同时考虑Spring 3.2和4.x推荐的解决方案,同时也会考虑以前的解决方案。...例如,如果客户端要求application/json ,在出现错误的情况下,应用程序仍然应该返回用application/json 编码的响应体。...另一个重要的实现细节是返回一个ModelAndView ——这是响应体,它将允许应用程序设置它所需要的任何东西。 对于Spring REST服务的异常处理来说,这种方法是一种一致且易于配置的机制。...MVC – 自定义错误页 首先,让我们看一下MVC风格的解决方案,看看如何定制一个拒绝访问的错误页面: 使用XML配置: <intercept-url pattern="/admin...<em>REST</em>和方法级的安全性 最后,让我们看看<em>如何</em>处理方法级的安全性注解@PreAuthorize、@PostAuthorize和@Secure引发的拒绝访问。

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

    2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务

    REST 已迅速成为在 Web 上构建 Web 服务的事实标准,因为它们易于构建且易于使用。...关于 REST 如何适应微服务世界还有一个更大的讨论,但是——对于本教程——让我们看看构建 RESTful 服务。为什么是 RESTREST 包含 Web 的规则,包括其架构、优势和其他一切。...在本教程中,我们将使用 Spring 产品组合来构建 RESTful 服务,同时利用 REST 的无堆栈特性。入门在完成本教程时,我们将使用Spring Boot。...当我们需要创建一个新实例但还没有 id 时,会创建一个自定义构造函数。有了这个域对象定义,我们现在可以转向Spring Data JPA来处理繁琐的数据库交互。...您可以使用 Spring Data MongoDB、Spring Data GemFire、Spring Data Cassandra 等。对于本教程,我们将坚持使用 JPA。

    61730

    2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(三)

    漂亮的 URL/employees/3不是 REST。仅使用GET,POST等不是 REST。安排好所有的 CRUD 操作不当 REST。...事实上,到目前为止,我们构建的更好地描述为RPC(远程过程调用)。那是因为没有办法知道如何与这个服务器交互。...如果您在项目中使用 Spring WebFlux,则必须改用WebFluxLinkBuilder.这与我们之前的情况非常相似,但有一些变化:该方法的返回类型已从 更改Employee为EntityModel...使用这个或其他技巧来美化 curl 返回的 json:# 指示部分将输出通过管道传输到 json_pp 并要求它使您的 JSON 更漂亮。(或者使用任何你喜欢的工具!)...在这个阶段,您已经创建了一个实际生成超媒体驱动内容的 Spring MVC REST 控制器!不讲 HAL 的客户端可以在使用纯数据时忽略额外的位。使用 HAL 的客户可以浏览您授权的 API。

    97430

    2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(二)

    书接上文⬆⬆⬆ HTTP 是平台 要使用 Web 层次包装您的存储库,您必须使用 Spring MVC。多亏了 Spring Boot,代码基础设施很少。...我们有每个操作的路由(@GetMapping、@PostMapping、@PutMapping和@DeleteMapping,对应于 HTTP GET、POST、PUT和DELETE调用)。...要启动应用程序,请右键单击其中并从 IDEpublic static void main中PayRollApplication选择运行,或者: Spring Initializr 使用 maven 包装器.../mvnw clean spring-boot:run 或者使用您安装的 Maven 版本输入: $ mvn clean spring-boot:run 当应用程序启动时,我们可以立即对其进行询。.........未完待续...... 2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务 #java##spring##spring认证##2022就业季# ---- 以上就是今天关于

    74420

    2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(五)

    REST 就是要打破这种连接并最小化这种耦合。为了展示如何在不触发客户端中断更改的情况下应对状态变化,想象一下添加一个履行订单的系统。...如果它不是一个有效的状态,它会返回一个RFC-7807 Problem,一个支持超媒体的错误容器。如果转换确实有效,则将 转换Order为CANCELLED。...Spring HATEOAS 可以轻松构建您需要为客户提供服务的超媒体。概括在本教程中,您使用了各种策略来构建 REST API。...我们关于如何使用 Spring 构建 RESTful 服务员的教程到此结束。...应用程序,每个资源的 HAL 表示进化- REST 应用程序,其中一个字段已进化但保留旧数据以实现向后兼容性链接- REST 应用程序,其中条件链接用于向客户端发出有效状态更改信号要查看使用 Spring

    91620

    视频直播智能分析平台EasyNVR调用登录接口返回‘密码加解密错误如何修复?

    TSINGSEE青犀视频开发的视频智能分析平台如EasyNVR、EasyGBS等都提供了丰富的二次开发接口,用户可以自由调用集成,操作便捷,比如我们的EasyNVR可以调用iframe地址进行其他平台的集成播放等...在EasyNVR4.1.3的版本中,我们发现调用登录接口后页面返回为‘密码加解密错误’。 ?...由于这个是前端调用接口的返回值,因此不输出到log日志内,但是此问题出现的原因我们可以往两个方向猜测,第一点就是我们的密码输入不正确,第二点就是我们调用登录接口的时候,验证的密码为md5加密的格式。...由于4.1.3的版本传输密码的安全性提高,所以我们在将密码进行md5加密后,默认进行二次RSA格式的加密,所以导致调用登录接口实际识别的为RSA加密后的md5格式密码,所以才会出现‘密码加解密错误’。...最后重启服务,测试调用登录接口,就可以发现调用成功了。 ?

    1.4K30

    如何使用Spring和Java配置构建一个REST API

    客户端错误 6.4. 使用@ExceptionHandler 7. 附加的Maven依赖项 8. 总结 1....概览 本文展示了如何Spring中配置REST——控制器和HTTP状态响应码、有效负载编排和内容协商的配置。 2....认识基于SpringREST Spring框架支持两种创建RESTful服务的方法: 使用MVC 的ModelAndView 使用HTTP消息转换器 ModelAndView这个方法比较老、文档也比较完善...客户端错误 在客户端错误的情况下,自定义异常被定义并映射到适当的错误代码。 简单地从Web层的任何位置抛出这些异常,将确保Spring将相应的状态代码映射到HTTP响应上。...总结 本教程演示了如何使用Spring 4和Java配置来实现一个REST服务,讨论了HTTP响应码、基本内容协商和编排。

    2.1K30

    Spring WebClient vs RestTemplate——比较和特点

    介绍 Spring 5 引入了一个名为 WebClient 的新反应式 Web 客户端。在这篇文章中,我将展示何时以及如何使用 Spring WebClient 与 RestTemplate。...然后,您可以@autowire在计划调用 REST 服务的任何类中使用此 bean。RestTemplate 是实现接口的类RestOperations。...如何Spring Boot 应用程序中使用 WebClient 的示例 我们可以结合 Spring Web MVC 和 Spring WebFlux 的功能。在本节中,我将创建一个示例应用程序。...此应用程序将使用 WebFlux 调用 REST API,我们将构建响应以显示包含用户列表的网页。...结论 在这篇文章中,我展示了什么是 Spring WebClient,我们如何使用 Spring WebClient 与 RestTemplate,以及它提供的不同功能。

    88010

    Spring Boot REST API错误处理指南

    本文将介绍在使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...如果你对如何开发基本的REST API并不熟悉,那么你应该先阅读这篇关于Spring MVC的文章或另一篇有关构建Spring REST服务的文章。...Spring程序处理数据库调用的一个常见场景是使用库类通过id去查找记录。但是,如果研究一下CrudRepository.findOne()方法,我们会发现,如果找不到对象,它将返回null。...这里另外还有一些资源,可对本文起到补充作用: Baeldung - 使用SpringREST进行错误处理 Spring Blog - Spring MVC中的异常处理 了解基础知识 为什么API应有一个统一的错误格式...通常重要的是要说明错误来自哪里。是否有任何输入参数发生错误?提供一些如何修复失败的呼叫的指导也很重要。 附录 译文来源:Spring Boot REST API错误处理指南-csdn

    3.3K20

    SpringCloud服务发现注册Eureka +Ribbon + Feign

    然后,其他微服务(同样也是Eureka客户端)就可以使用服逻辑务ID来调用REST端点服务了。...CP,而Eureka是属于AP,在服务发现方面,高可用性才是更重要,否则无法完成服务之间调用,而服务信息是否一致则不是最重要,A服务发现B服务时,B服务信息没有及时更新,可能发生调用错误,但是调用错误总比无法连接到服务注册中心要强...下面我们准备访问这个服务生产者PengProducerService的消费者服务: 结合Ribbon的服务消费者 上个章节我们已经启动了两个服务生产者实例如何通过负载平衡从两个中选择一个访问呢?...Ribbon实现对多个服务生产者实例使用负载平衡的方式进行消费,在调用服务生产者时,返回的是字符串类型,如果返回是各种自己定义的对象,这些对象传递到消费端是通过JSON方式,那么我们的消费者需要使用Feign... 本章的代码下载:百度网盘 总结 通过这个项目学习,我们如同蚕丝剥茧层层搞清楚了Spring Cloud的微服务之间同步调用方式,发现基于REST/

    94320

    微服务声明式rest客户端之feign使用入门教程

    我们还将谈谈Spring Boot和Feign。 在本教程中,我们将了解如何使用Feign编写声明性REST客户端。它通过抽象出我们通常编写的样板代码,使编写Web客户端变得容易。...实际的实现将由框架在运行时完成,以及调用之间的各种消息转换。我们首先需要设置一个使用已知端点运行的示例REST API,以便我们可以使用feign客户端调用它们。...如果未找到产品,则返回HTTP.BAD_REQUEST响应。...4. .使用Feign和Eureka和Ribbon 通常在微服务架构中,所有服务都注册到像Eureka这样的注册服务,并且可能存在运行相同服务的多个实例。...因此,您可能不希望在Feign客户端中对URL进行硬编码,也希望连接到响应更快的服务实例。 我们来设置一个Eureka服务器。同样,我们将使用Spring Initializr来创建它。

    1.8K40
    领券