2014-12-03 57 views
3

目前,我可以通过向/ {resource}/schema(使用accept:application/schema + json)发出GET请求来获取资源的JSON模式。如何在Spring Data Rest中为实体定制模式

它看起来像这样:

{ 
    "name" : "{java_package}.{resource_class_name}", 
    "description" : "rest.description.{resource_class_name}", 
    "links" : [ ], 
    "properties" : { 
    "{property name}" : { 
     "type" : "{property_type}", 
     "description" : "rest.description.{resource_class_name}.{property_name}", 
     "required" : false 
    } 
    } 
} 

我想不通的是如何更改名称,描述,或是否需要与否的财产。我想看起来像这样:

{ 
    "name" : "{resource_name}", 
    "description" : "{custom_description}", 
    "links" : [ ], 
    "properties" : { 
    "{property_name}" : { 
     "type" : "{property_type}", 
     "description" : "{custom_property_description}", 
     "required" : {true or false} 
    } 
    } 
} 

我试图注释实体类是这样的:

@JsonPropertyDescription(value = "{custom_property_description}") 
@JsonProperty(required = {true or false}) 
private {property_type} {property_name}; 

但最终的结果都是一样的。有谁知道如何自定义SDR返回的模式?

回答

0

随着SDR 2.2.X使用org.springframework.data.rest.core.annotation.Description注释您的域类和字段,以查看“描述”属性已填充。 “名称”属性已连线到您的域名类别名称并且“要求”属性设置为“false”。

package com.test; 

@Description("Application") 
public class App { 

    @Description("Application Name") 
    private String name; 
} 

会产生

{ 
    "name" : "com.test.App", 
    "description" : "Application", 
    "links" : [ ], 
    "properties" : { 
    "name" : { 
     "type" : "string", 
     "description" : "Application Name", 
     "required" : false 
    } 
    } 
} 

说了这么多,有ticket进行架构,以确认其JSON Schema尚未实现。

+0

有没有办法改变顶级名称?我不想展示包装。 – dspiegs 2014-12-10 19:57:20

+0

不幸的不是! – Stackee007 2014-12-10 20:00:10

+0

我是否必须手动注释每个属性?我可以不显示描述吗? – dspiegs 2014-12-10 20:05:49

相关问题