2015-03-03 12 views
5

REST API'mı belgelemek için Swagger kullanıyorum.Çalma Çerçeveli ImplicitParam'da Swagger Veri Türü Modeli

case class CreateItemRequest(title: String, body: String) 

@ApiOperation(value = "Create a new item", httpMethod = "POST", response = classOf[Item]) 
@ApiImplicitParams(Array(new ApiImplicitParam(dataType = "CreateItemRequest", paramType = "body", name = "body", required = true, allowMultiple = false, value = "The item object to create"))) 
def create(
      @ApiParam(value = "Hash of the user", required = true) 
      @QueryParam("userhash") userhash: String 
     ) 

Ve this gibi "Modeli" almak için bekliyordum ama Veri Türü olarak sadece dize "CreateItemRequest" olsun: Bu example ardından, böyle DİNLENME merkezi ✘ açıklama. CreateItemRequest vaka sınıfının özellikleri değil.

Selamlar, Daniel

+0

Bunun için bir çözüm buldunuz mu? Aynı problemle karşı karşıyayım: \ – Sudh

cevap

0

deneyin burada gösterildiği gibi, hem de dayı ek açıklamaları ile modelleri açıklama için:

https://github.com/swagger-api/swagger-core/blob/master/samples/scala-play2/app/models/Pet.scala

· Açıklama ApiModel (isim = "CreateItemRequest") ek açıklama eşleştirmek @ApiImplicitParam (veri türü = "CreateItemRequest")

alkış Johannes

+1

Zaten bunu denedim, ama ne yazık ki çalışmıyor :( –

+1

Buna bir çözüm buldunuz mu? Aynı sorun var. –

0

Sınıfınızdan önce bu ek açıklama @JsonAutoDetect ve @JsonIgnoreProperties(ignoreUnknown = true) kullanmayı deneyin ve ardından göstermek istediğiniz her özellik için @JsonPropety ekleyin.

GET url controllers.foo.YourMethod(param: type) 

Daha örnek here:

rota tanımında sen gibi yöntemini çağırın emin olun.

Bu yardımcı olur umarım.

9

Tam ad alanını dataType özniteliğinde kullanmalısınız. Örneğin: @ApiImplicitParam(dataType = "org.test.CreateItemRequest")

+1

Sorunumu çözdüm. – chabeee