我正在一个小型的SDR POC项目中工作,我们决定使用JSON-Schema,因为它对我们的目的更有意义,因为我们正在尝试开发一个了解超媒体并创建我们视图的一部分的客户端动态地,但我很难找到我的实体的所有超媒体元数据 使用JSON模式。
这些是我使用
的实体@Entity
public class Book {
(...)
@OneToMany(mappedBy="book")
@JsonManagedReference
private Set<Page> pages;
}
@Entity
public class Page {
(...)
@ManyToOne
@JsonBackReference
private Book book;
}
当我在/ profile / Books上使用accept header值执行GET作为&#34; application / schema + json&#34;:
curl -H 'Accept:application/schema+json' http://localhost:8080/profile/books
我收到了这个输出:
{
"title": "Book",
"properties": {
"pages": {
"title": "Pages",
"readOnly": false,
"type": "string",
"format": "uri"
},
"name": {
"title": "Name",
"readOnly": false,
"type": "string"
}
},
"definitions": {},
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#"
}
此JSON架构输出没有指向Book实体的所有CRUD操作的链接,也没有指向相关实体(如Pages或元数据)的链接来定义其属性。
/ profile提供的默认ALPS输出(http://tools.ietf.org/html/draft-amundsen-richardson-foster-alps-01)不够有意义,因为它没有显示实体的所有可能操作链接,也没有显示特定类型。
/ books的HAL输出(https://tools.ietf.org/html/draft-kelly-json-hal-07)描述了所有图书实例的链接及其与其他实体的交互链接,但没有关于元数据。
在SDR中输出实体的JSON模式元数据的正确方法是什么? 有没有什么方法可以从SDR资源生成JSON超模式(http://tools.ietf.org/html/draft-luff-json-hyper-schema-00)?