Java 如何在SpringDataREST中自定义实体的模式
目前,我可以通过向/{resource}/Schema(使用accept:application/Schema+JSON)发出get请求来获取资源的JSON模式 看起来是这样的:Java 如何在SpringDataREST中自定义实体的模式,java,spring,spring-data-jpa,jsonschema,spring-data-rest,Java,Spring,Spring Data Jpa,Jsonschema,Spring Data Rest,目前,我可以通过向/{resource}/Schema(使用accept:application/Schema+JSON)发出get请求来获取资源的JSON模式 看起来是这样的: { "name" : "{java_package}.{resource_class_name}", "description" : "rest.description.{resource_class_name}", "links" : [ ], "properties" : { "{prope
{
"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}
}
}
}
我无法弄清楚的是如何更改名称、描述,或者是否需要该属性。我想看起来像这样:
{
"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返回的模式吗?使用SDR 2.2.X使用
org.springframework.data.rest.core.annotation.Description注释域类和域,以查看填充的“Description”属性。“name”属性连接到您的域类名,“required”属性设置为“false”
示例
会让步
{
"name" : "com.test.App",
"description" : "Application",
"links" : [ ],
"properties" : {
"name" : {
"type" : "string",
"description" : "Application Name",
"required" : false
}
}
}
话虽如此,仍需对尚未实现的模式进行确认。是否有方法更改顶级名称?我不想显示包。我必须手动为每个属性添加注释吗?我可以不显示描述吗?这是可选的。没有注释的字段将有空的description当前没有注释,它们有完整的路径,包括包和类名,看起来功能已经改变了。注意,我没有亲自核实这一点