2015-03-03 15 views
5

Tôi đang cố gắng sử dụng Swagger để ghi lại API REST của mình. Sau example này, tôi chú thích các thiết bị đầu cuối REST của như thế này:Mô hình kiểu dữ liệu dao động trong ImplicitParam với khung chơi

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 
     ) 

Và tôi đã mong đợi để có được "Model" như this nhưng tôi nhận được chỉ là String "CreateItemRequest" như Data Type. Không phải thuộc tính của lớp CreateItemRequest.

Greetings, Daniel

+0

Bạn có tìm thấy giải pháp cho điều này không? Tôi đang phải đối mặt với cùng một vấn đề: \ – Sudh

Trả lời

0

cố gắng để chú thích mô hình của bạn với các chú thích vênh vang cũng như đưa ra ở đây:

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

chú thích ApiModel của bạn (name = "CreateItemRequest") phù hợp với chú thích @ApiImplicitParam (dataType = "CreateItemRequest")

Chúc mừng, Johannes

+1

Tôi đã thử điều đó, nhưng tiếc là không hoạt động: ( –

+1

Bạn có tìm thấy giải pháp cho vấn đề này không? Tôi có cùng một vấn đề. –

0

Hãy thử sử dụng chú thích này @JsonAutoDetect@JsonIgnoreProperties(ignoreUnknown = true) trước lớp học của bạn và sau đó thêm @JsonPropety cho mỗi thuộc tính bạn muốn hiển thị.

Hãy chắc chắn rằng trong định nghĩa con đường của bạn, bạn gọi phương thức của bạn như:

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

More dụ here.

Hy vọng điều này sẽ giúp bạn.

9

Bạn nên sử dụng không gian tên đầy đủ trong thuộc tính dataType. Ví dụ: @ApiImplicitParam(dataType = "org.test.CreateItemRequest")

+1

Nó giải quyết được vấn đề của tôi. – chabeee

Các vấn đề liên quan