2017-03-07 8 views
0

私はSwaggerファイルを生成するためにSpringfoxとSwaggerを使用しています。今は@ModelAttributeを使用してオブジェクト(NetworkCmd)から変数を引き出して、スガーガー・ドッグにクエリ・パラメーターとして表示しています。@ModelAttributeの使用中にカスタムドメインオブジェクトが表示されない

私は現在、次のコントローラを持っている:

@RequestMapping(value = "/{product_id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) 
@ResponseHeader() 
public ResponseEntity<?> networkResponse(
    @RequestHeader HttpHeaders headers, 
    @PathVariable("product_id")String productId, 
    @Valid @ModelAttribute NetworkCmd cmd, 
    BindingResult result) 
    throws Exception { 

    ... 
} 

そして、ここではNetworkCmdのサンプルです:このクラスの変数の

@ItemId 
@NotNull(message = "product cannot be null") 
@ApiModelProperty(
    value = "testing") 
private String product_id; 

@ApiModelProperty(
    value = "key", 
private String key; 

@ApiModelProperty(
    value = "parent") 
private Boolean is_parent_id; 

@Min(0) 
@ApiModelProperty(
    value = "radius") 
private double radius = 10d; 

一つは、カスタムドメインオブジェクトNearbyです。

private Nearby nearby = null; 

public Nearby getNearby() { 
    return nearby; 
} 

public void setNearby(String nearby) throws ParseException { 
    this.nearby = Nearby.parse(nearby); 
} 

それが文字列で受け取り、その文字列を解析し、Nearbyオブジェクトに変換しますので、これは特殊変数の一種です。

私の問題は、このNearby変数が生成されたスガッガー文書に@ModelAttributeで表示されないということです。これ以上の情報を提供できてうれしいです。

答えて

1

この問題を回避する方法の1つは、別のタイプのルールを作成することです。近くの型に出会うたびに、これを文字列として扱います。

new Docket(...) 
    .directModelSubstitute(Nearby.class, String.class) 
+0

回答ありがとうございます!残念ながら、これは動作しません。私も試しました: '.directModelSubstitute(Nearby.class、Object.class)' – ahatzz11

関連する問題