Spring 数据剩余显示 id 作为 mongo 存储库中 POST 方法的路径变量?

Spring data rest shows id as path variable in swagger for POST method in mongo repository?

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

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 方法显示如下:

这是我的存储库:

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


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

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

无论如何它可以通过 Postman post 而无需添加这样的路径变量。

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

这似乎是 Springfox 版本 2.7.0 中的错误。应在 2.8.0 中修复,如突出显示 here.