Spring Data Rest在Swagger中为mongo存储库中的POST方法显示id作为路径变量?

时间:2019-05-23 11:33:27

标签: swagger spring-data-mongodb swagger-ui spring-data-rest springfox

我正在使用MongoRepository。下面是我的实体类:

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "product")
@Data
@ToString
@EqualsAndHashCode
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Product {

  @Id private String id;

  @Indexed(unique = true)
  private String name;

  private boolean displayAds;
}

当我在Swagger中查看资源时,POST方法显示如下:

enter image description here

这是我的存储库:

import org.springframework.data.mongodb.repository.MongoRepository;


public interface ProductRepository extends MongoRepository<Product, String> {
}

为什么会这样?有解决办法吗?我正在使用springfox-swagger2springfox-swagger-ui

无论如何,它都可以通过Postman进行发布,而无需添加此类路径变量。

1 个答案:

答案 0 :(得分:1)

更新到 2.8.0 应该可以解决该问题。

这似乎是 Springfox 版本 2.7.0 中的错误。应该固定在 2.8.0 中,突出显示为here