我正在填充并以下列方式将javax.ws.rs.core.Response返回给Swagger UI-
return Response.status(503)
.entity(new SomeErrorEntity())
.header("SOME_HEADER","SOME_HEADER").build();
这里,SomeErrorEntity对象的json正确地显示在Response body中,但是 Headers “SOME_HEADER”没有显示在Google Chrome中呈现的swagger UI中的Response头下 . 只有“content-type”:“application / json”显示在 Headers 下 . 但有趣的是,“SOME_HEADER” Headers 显示在IE 11中,但在其他浏览器中不显示(最新的Chrome,Mozilla) . 在这里,我使用swagger-jaxrs_2.10版本1.3.13,swagger-core_2.10版本1.3.13,swagger-annotations版本1.5.3-M1和swagger-jersey2-jaxrs_2.10版本1.3.13 . 我也在web.xml中使用以下CORS配置
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
做了一些初步调查,发现在Swagger UI中渲染 Headers 存在一些问题,建议的修正不适用于我的情况,因为我没有明确使用任何swagger.js . 所以,很少有人对如何找到这个问题的解决方案感到困惑 . 因此,任何解决此问题的建议都将受到赞赏 .
1 回答
由于CORS问题,您必须将此
Access-Control-Expose-Headers:X-Total-Results
发送给客户端