前端と後端、swagger2速度の開発とWireMockを分離

まず、インターフェイスのドキュメントはswagger2を使用して生成されます

  1. 頼ります

    <依存性> 
        <のgroupId> io.springfox </のgroupId> 
        <たartifactId> springfox-swagger2 </たartifactId> 
            <バージョン> 2.7.0 </バージョン> 
    </依存>
    <! - ブートストラップ・インタフェースを造園の闊歩 - >
    <依存性> 
      <のgroupId> io.springfox </のgroupId>
    <たartifactId> springfox-闊歩-UI </たartifactId>
    <バージョン> 2.7.0 </バージョン>
    </依存>
  2. スタートアップクラスspringboot上のプラスEnableSwagger2コメント@
  3. コントローラインタフェースプラス@ApiOperation(値=「ユーザクエリサービス」)注釈インターフェイスの役割ことを示しています。

swagger2一般的に使用される注釈:

@Api()クラスを示す要求クラス図で使用されているだけでなく、このクラスのリソースを表すswagger2あります

   参数:tags:说明该类的作用,参数是个数组,可以填多个。
      value="该参数没什么意义,在UI界面上不显示,所以不用配置"
      description = "用户基本信息操作"

)(@ApiOperation:操作するための方法は、HTTP要求をアクセスする方法を表します

参数:value="方法的用途和作用"    
   notes="方法的注意事项和备注"    
   tags:说明该方法的作用,参数是个数组,可以填多个。
   格式:tags={"作用1","作用2"} 
   (在这里建议不使用这个参数,会使界面看上去有点乱,前两个常用)

@ApiModel()の効果を説明するためのエンティティ・クラスに応じて、エンティティ

参数:description="描述实体的作用"  

@ApiModelProperty:エンティティクラス属性の説明に使用されるプロパティ

参数:value="用户名"  描述参数的意义
   name="name"    参数的变量名
   required=true     参数是否必选

@ApiImplicitParams:複数を含む、方法で使用される要求@ApiImplicitParam

@ApiImplicitParam:方法、別個のリクエストパラメータを表します

参数:name="参数ming" 
   value="参数说明"
   dataType="数据类型"
   paramType="query" 表示参数放在哪里
    · header 请求参数的获取:@RequestHeader
    · query   请求参数的获取:@RequestParam
    · path(用于restful接口) 请求参数的获取:@PathVariable
    · body(不常用)
    · form(不常用) 
defaultValue="参数的默认值"
required="true" 表示参数是否必须传

@ApiParam()を示す、説明のためのパラメータのための方法、パラメータフィールド指定要件

参数:name="参数名称"
   value="参数的简要说明"
   defaultValue="参数默认值"
   required="true" 表示属性是否必填,默认为false

@ApiResponses:要求するための方法であって、異なる応答コードに係る応答を示し複数を含む@ApiResponsesを@ApiResponse

@ApiResponse:要求の方法で使用される、応答が異なることを示し

参数:code="404"    表示响应码(int型),可自定义
   message="状态码对应的响应信息"   

@ApiIgnore():クラスまたはメソッドには、ページに表示されていない
@Profile({「DEV」、「テスト」}): コンフィギュレーション・クラスのため、開発およびテスト環境のためにのみ有用表します

 

第二に、WireMockを使用して偽造RESTサービス

WireMockは、テスト、Webサービスのための柔軟なライブラリであり、かつ他のテストツールはWireMockテストを容易にするために、あなたのWebサービスを実行するために、実際のHTTPサーバを作成し、異なっています。

これは、スタブHTTPレスポンスをサポートする認証、プロキシ/傍受、録音と再生を要求し、テスト環境やテストユニットでの展開に使用することができます。

使用シナリオ:

  • テストモバイルアプリケーションはサードパーティのRESTのAPIに依存しています
  • ラピッドプロトタイピングのためのAPIを作成します。
  • サードパーティのサービスエラーの注入をシミュレートしにくいです
  • ユニットテストのWebサービスに依存して任意のコード
  1. 公式サイト:http://wiremock.org/

    実行可能なjarファイルをダウンロードします。http://wiremock.org/docs/running-standalone/

  2. 3298 --portのjava-jarファイル启动瓶包のjava -jar wiremock-スタンドアロン-2.18.0.jar 
  3. 依存追加
    <依存性> 
          <のgroupId> com.github.tomakehurst </のgroupId> 
          <たartifactId> wiremock </たartifactId> 
          <バージョン> 1.53 </バージョン> 
          <分類器>スタンドアロン</クラシファイア> 
    </依存> 
      <依存性> 
            <のgroupId> ORG .testng </ groupIdを> 
            <たartifactId> TestNGの</たartifactId> 
            <バージョン> 6.8 </ version>の
      </依存関係>
  4. 返されたJSONデータを格納し、TXTファイルを確立するために、フォルダのリソースでドキュメントを作成します。
  5. 設定を追加
    パブリック 静的 ボイドメイン(文字列[]引数)がスローにIOException { 
            WireMock.configureForを( "127.0.0.1"、3298)。// 设置路径和端口 
            WireMock。removeAllMappings(); // 清空所有设置
    
            モック( "/試験/ 01"、 "01" )。
            モック( "/試験/ 02"、 "02" )。
        } 
    
        プライベート 静的 ボイドモック(文字列のURL、文字列ファイル)がスローにIOException { 
            ClassPathResource資源 = 新しい ClassPathResource( "応答/" +ファイル+ ".txtファイルを" )。
            文字列の内容StringUtils.join =(FileUtils.readLines(resource.getFile()、 "UTF-8")のtoArray()、 "\ N-。"); // 戻り値の結果 
            stubFor((urlPathEqualTo(URL)を取得する )willReturn(aResponse(。 ).withBody(コンテンツ).withStatus(200は))); // GETまたはPOSTリクエスト戻り値 
        }

     

     

おすすめ

転載: www.cnblogs.com/dinghaoran/p/11876525.html