亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 Springfox 從 Swagger 文檔中隱藏端點

如何使用 Springfox 從 Swagger 文檔中隱藏端點

jeck貓 2022-07-20 15:55:12
我有一個 Spring Boot 項目,它具有 Springfox 的下一個依賴項:<dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger2</artifactId>    <version>2.9.2</version>    <scope>compile</scope></dependency><dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger-ui</artifactId>    <version>2.9.2</version></dependency>我有我的界面:import org.springframework.http.MediaType;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import springfox.documentation.annotations.ApiIgnore;@RestController@RequestMapping(value = "/cache")@ApiIgnore@Api(hidden = true)public interface CacheController {    @RequestMapping(        value = "clear/",        method = RequestMethod.GET,        produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.TEXT_PLAIN_VALUE}    )    @ApiOperation(value = "", hidden = true)    ResponseEntity<String> clearToken();}注釋@ApiIgnore和@Api(hidden = true)(我已經單獨測試過它們,它們也不起作用。)對隱藏文檔沒有影響。它僅在注釋超過方法時才有效,但我想將它們全部隱藏,因為我還有其他要隱藏的端點。一些想法?
查看完整描述

5 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

您已@ApiIgnore在接口上添加注釋??雌饋?,當添加到界面上時,此注釋不起作用。(我真的不明白為什么@Api在界面上工作而@ApiIgnore不是。??)

將注釋直接添加到您的控制器類。這應該可以解決您的問題。

注釋上的hidden屬性@Api當前不起作用。(請參閱GitHub 問題。)


查看完整回答
反對 回復 2022-07-20
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

對于OpenAPI3SpringBoot
我在控制器的方法上使用了 @Hidden 注釋。
它似乎在方法級別和控制器級別都有效。

@Hidden 注釋是通過以下方式導入的:

import io.swagger.v3.oas.annotations;


查看完整回答
反對 回復 2022-07-20
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

另一種方法是使用@ApiOperation(hidden = true) 這可以在控制器/處理程序級別的方法中使用。例如


@RestController

public HomeController{

@ApiOperation(value = "<Your Message>", hidden = true)

    public String getMessage(@RequestParam(value = "msg") final String msg){

        return msg;

    }

}


查看完整回答
反對 回復 2022-07-20
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

我們只想從類中隱藏特定方法的場景。對于 swagger.v3 有一個名為Hiddenin的注釋io.swagger.core.v3:swagger-annotations:2.0.10 jar。要隱藏的方法可以使用注釋進行Hidden注釋,如下所示。下面的方法顯示了DELETE需要從 swagger 文檔中隱藏的操作方法。


@DELETE

@Hidden

public void deleteList(int id) {

//code goes here.

}


查看完整回答
反對 回復 2022-07-20
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

另一種不同的好方法是在 SpringFox 配置上定義可見路徑


@Configuration

@EnableSwagger2

public class SpringFoxConfig {


    @Bean

    public Docket api() {

        return new Docket(DocumentationType.SWAGGER_2)

                .select()

                .apis(RequestHandlerSelectors.any())

                .paths(Predicates.or(PathSelectors.ant("/rtm/**"), PathSelectors.ant("/appview/**")))

                .build().apiInfo(apiEndPointsInfo());

    }

}

通過這種方式,您可以集中定義可見路徑,并避免在許多控制器上放置大張旗鼓的注釋。


查看完整回答
反對 回復 2022-07-20
  • 5 回答
  • 0 關注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號