spring cloud統合Swagger 2によるRESTfulサービス構築APIの詳細解


前言
前のブログでは、Eurekaにサービスを登録しました。EurekaのUIインターフェースから、Eureka Serverに登録されているサービスを見ましたが、現在のサービスが提供しているRESTfulインターフェースの方法を確認したいなら、取得できません。従来の方法はサービスのインターフェース文書を整理して開発者同士で交流することです。このような場合、多くの場合、ドキュメントとコードの不一致を引き起こすことがあります。例えばコードが変更されましたが、インターフェースの文書は変更されていません。Swagger 2は完璧な解決策を提供してくれました。
一、Swagger 2依存のjarバッグを導入する

<!-- swagger2 --> 
    <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger2</artifactId> 
      <version>2.2.2</version> 
    </dependency> 
    <dependency> 
      <groupId>io.springfox</groupId> 
      <artifactId>springfox-swagger-ui</artifactId> 
      <version>2.2.2</version> 
    </dependency> 
二、Swagger 2の配置を初期化する

@Configuration 
@EnableSwagger2 //   Swagger2 
public class Swagger2 { 
 
  @Bean 
  public Docket createRestApi() {//   API     
    return new Docket(DocumentationType.SWAGGER_2) 
        .apiInfo(apiInfo()) 
        .select() 
        .apis(RequestHandlerSelectors.basePackage("com.chhliu.jpa"))//            Swagger    API,@ApiIgnore        
        .paths(PathSelectors.any()) 
        .build(); 
  } 
 
  private ApiInfo apiInfo() {//   API     ,      Swagger UI      
    return new ApiInfoBuilder() 
        .title("Spring Boot   Swagger2  RESTful APIs")// API    
        .description("rdcloud-jpa   RESTful APIs")// API   
        .contact("chhliu@")//     
        .version("1.0")//     
        .build(); 
  } 
 
} 
注:この設定クラスは、Appliationの同じクラスのディレクトリで作成し、プロジェクトが開始されると、その設定クラスを初期化する必要があります。
三、API文書の情報を改善する

public interface SonarControllerI { 
  @ApiOperation(value="     Sonar   Url  ", notes="  id     Sonar   Url  ")//               
  @ApiImplicitParams({ 
      @ApiImplicitParam(name = "id", value = "SonarUrl ID", required = true, dataType = "Long", paramType="path") 
  })//              ,        paramType  ,     path,   UI        ,    
  @GetMapping("/get/{id}") 
  SonarUrl get(@PathVariable Long id); 
   
  @ApiOperation(value="     Sonar     Url  ") 
  @GetMapping("/get/all") 
  List<SonarUrl> getAll(); 
} 
注:paramTypeはパラメータの種類を表します。オプションの値は「path」、「body」、「query」、「header」、「form」です。
四、戻りタイプ情報を完備する

@Entity(name = "SONAR_URL") 
public class SonarUrl implements Serializable { 
 
  /** 
   * 
   */ 
  private static final long serialVersionUID = 1L; 
  @ApiModelProperty(value="  ", hidden=false, notes="  ,  ", required=true, dataType="Long")//            , hidden=true ,      api    
  @Id 
  @GeneratedValue(strategy = GenerationType.AUTO) 
  private Long id; 
   
  @ApiModelProperty(value="URL    ") 
  @Column(name="URL") 
  private String url; 
   
  @ApiModelProperty(value="   ") 
  @Column(name="TEAM") 
  private String team; 
 
  @ApiModelProperty(value="  ") 
  @Column(name="DEPARTMENT") 
  private String department; 
    ……  getter,setter  …… 
 } 
五、アプリケーションの起動
1、ブラウザに入力:http://localhost:7622/swagger-ui.
2、結果は以下の通りです

六、APIドキュメントのアクセスとテスト
SwaggerはAPIインターフェースの表示機能を提供するほか、デバッグテスト機能も提供しています。

テストの結果は以下の通りです。

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。