所有api调用都应使用前缀为/api
的url,并应由REST控制器处理。
所有其他URL应该只提供index.html
文件。我如何用Spring实现这一点?
实现您想要的最简单的方法是实现自定义404处理程序。
将这些参数添加到应用程序中。properties:
spring.resources.add-mappings=false
spring.mvc.throw-exception-if-no-handler-found=true
第一个属性删除所有默认的静态资源处理,第二个属性禁用Spring默认的whitelabel页面(默认情况下Spring捕获NoHandlerFoundException
并提供标准的whitelabel页面)
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.NoHandlerFoundException;
import javax.servlet.http.HttpServletRequest;
@ControllerAdvice
public class PageNotFoundController {
@ExceptionHandler(NoHandlerFoundException.class)
public String handleError404() {
return "redirect:/index.html";
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceView;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/index.html").addResourceLocations("classpath:/static/index.html");
super.addResourceHandlers(registry);
}
@Bean
public ViewResolver viewResolver() {
UrlBasedViewResolver viewResolver = new UrlBasedViewResolver();
viewResolver.setViewClass(InternalResourceView.class);
return viewResolver;
}
}
我有在openshift中运行的springboot和非springboot(Eclipse Microprofile)Rest API。两者都有服务endpoint端口9443 SpringBoot度量路径-/actuator/Prometheus Eclipse micro profile度量路径/度量 Eclipse微配置文件抓取配置 Spring靴刮擦配置 由于MP指标在springboo
从我的后端应用程序(springboot,java8)中,我将进行多个外部api调用。我需要将所有请求和响应数据(包括头、请求和响应体)记录到数据库(MongoDB)中。 下面是我的示例代码,这是我如何尝试捕获每个外部api调用的请求和响应。在异常情况下,我将存储状态为“失败”。 在我的项目中,将在新的第三方api集成上添加多个模块,因此在每个模块中,对于每个不同的外部api调用,我必须捕获所有这
我有一个API服务器(资源服务器)和多个应用程序、Web GUI(SPA)和一个桌面客户端,也许还会有更多。除了超文本传输协议之外,我还想为我的API服务器使用openid-connect基本身份验证。应该可以配置使用哪个openid提供商。我自己的,facebook,google...我只想做身份验证,我不需要他们的API。我只需要一些个人资料数据,如电子邮件或名字。 比方说,我已经将googl
Regan_API_SpringBoot 项目介绍 Regan_API_SpringBoot 文档项目 Regan API 项目是基于注释自动生成api文档,很大缩短了开始与后期维护API接口文档的时间。Regan API 利用jdk提供的Doclet 类读取文档注释,可手动配置需要读取的文件,同时增加了读取过滤指定方法过滤等功能。 文档: https://zhangbiy.github.io/r
当我试图通过邮递员发送时,我有一个请求正在正常工作。我试图实现相同的使用代码,我面临一个错误。 我正在使用的代码- 我得到的错误是- org.springframework.web.client.HttpClientErr异常$未授权: 401未授权 但《邮递员》中同样的作品也有同样的细节。 我想说明一下 后端API不在我手里。 clientid,clientSecret,access_token
我使用角应用程序的应用程序代码授予角。 Issue1-刷新令牌在接下来的2天内无效,即使签名已扩展,如何在接下来的30天内扩展访问令牌? 问题2-查看该文档 “解析demo.docusign.net/restapi/v2.1/accounts/…”名称:“HttpErrorResponse”确定:错误状态:200状态文本:“确定”url:“demo.docusign.net/restapi/v2.