根据this规范,以hal + json格式公开数据的应用程序应在_links json字段中提供嵌入式链接。但是,如果我在spring-data 1.5.9中声明我的REST存储库,就像这样:
@RepositoryRestResource(path = "storage-node", excerptProjection = IBrief.class)
public interface IStorageNodeRepository extends JpaRepository<StorageNode, Long> {
@Query("FROM StorageNode sn WHERE sn.parent is null order by sn.uploadTs ASC")
List<StorageNode> findAllRootNodes();
}
我得到以下json:
{
"nodeType" : "Image",
"text" : "100.jpeg",
"uploadTs" : "2018-01-11T23:48:25.724Z",
/* ... Irrelevant ... */
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/emerald/api/hal/storage-node/31"
}
/* ... Irrelevant ... */
}
正如我们所看到的,它在“链接”字段中导出链接,没有前导下划线。是否需要其他配置才能根据HAL规范导出数据?
答案 0 :(得分:1)
在考虑之后,我发现了这个片段。
@Bean
public RepositoryRestConfigurer repositoryRestConfigurer() {
return new RepositoryRestConfigurerAdapter() {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.setBasePath("/api/hal");
config.setDefaultMediaType(MediaType.APPLICATION_JSON_UTF8);
}
};
}
删除默认媒体类型完成了这项工作。
我不记得我在哪些情况下添加了这个。也许我必须在每个回复中明确说出;charset=utf8
来处理俄语字符串。
答案 1 :(得分:0)