0

在自定义控制器上 实现“ /schema ”功能的最佳方法是什么(在rest-bucks中解释)类似于带有 Spring Data Rest的“ [repository]/schema ”功能?

4

1 回答 1

2

如果实体类是通过 Spring Repositories 进行持久化的,解决方法是注入PersistentEntityToJsonSchemaConverter控制器并调用convert()方法。

下面是一个使用 Mongo 作为存储库的代码示例

实体类

@Document
    public class Project implements Identifiable<String> {

        @Id
        private String id;

    @NotNull
        private String name;
    //getters setters
    }

存储库

public interface ProjectRepository extends
        PagingAndSortingRepository<Project, String> {
}

控制器

@Controller
@ExposesResourceFor(Project.class)
@RequestMapping("/projects")
public class ProjectController {
@Autowired
    private PersistentEntityToJsonSchemaConverter jsonSchemaConverter;

    @RequestMapping(value = "/schema", method = RequestMethod.GET, produces = { "application/schema+json" })
    @ResponseBody
    public JsonSchema schema() {
        return jsonSchemaConverter.convert(Project.class);
    }
// implement rest of SDR mechanics

}
于 2014-02-07T22:13:37.330 回答