我有一个名为AdminResource的父资源和一个名为AdminModuleResource的子资源。
父资源已正确安装HATEOAS链接:
{
"firstname" : "Stephane",
"lastname" : "Eybert",
"email" : "mittiprovence@yahoo.se",
"password" : "e41de4c55873f9c000f4cdaac6efd3aa",
"passwordSalt" : "7bc7bf5f94fef7c7106afe5c3a40a2",
"links" : [ {
"rel" : "self",
"href" : "http://localhost/admins/3683"
}, {
"rel" : "modules",
"href" : "http://localhost/admins/3683/modules"
} ],
"id" : 3683
}
子资源也正确安装了HATEOAS链接:
{
"module" : "BTS",
"adminResource" : {
"firstname" : "Stephane",
"lastname" : "Eybert",
"email" : "mittiprovence@yahoo.se",
"password" : "e41de4c55873f9c000f4cdaac6efd3aa",
"passwordSalt" : "7bc7bf5f94fef7c7106afe5c3a40a2",
"links" : [ ],
"id" : 3683
},
"links" : [ {
"rel" : "self",
"href" : "http://localhost/modules"
} ],
"id" : 1087
}
但是它的父资源已经失去了链接。
目前,在我的子管理模块资源中,父管理资源没有链接。事实上,汇编程序的toResources方法只提供子管理模块资源的链接。
public AdminModuleResource toResource(AdminModule adminModule) {
AdminModuleResource adminModuleResource = new AdminModuleResource();
adminModuleResource.fromAdminModule(adminModule);
adminModuleResource.add(linkTo(AdminModuleController.class).slash(adminModuleResource.getId()).withSelfRel());
return adminModuleResource;
}
public AdminResource toResource(Admin admin) {
AdminResource adminResource = createResourceWithId(admin.getId(), admin);
adminResource.fromAdmin(admin);
adminResource.add(linkTo(AdminController.class).slash(admin.getId()).slash(UriMappingConstants.MODULES).withRel(UriMappingConstants.MODULES));
return adminResource;
}
你知道我如何在子管理模块资源中添加到父管理资源的链接吗?
编辑:以下是我如何构建资源:
public void fromAdminModule(AdminModule adminModule) {
this.setResourceId(adminModule.getId());
this.setModule(adminModule.getModule());
AdminResource adminResource = new AdminResource();
adminResource.fromAdmin(adminModule.getAdmin());
this.adminResource = adminResource;
}
public void fromAdmin(Admin admin) {
this.setResourceId(admin.getId());
this.setFirstname(admin.getFirstname());
this.setLastname(admin.getLastname());
this.setEmail(admin.getEmail().toString());
this.setPassword(admin.getPassword());
}
谢谢!
斯蒂芬
只是偶然发现了这个问题,尽管它已经很老了,但对于其他实现类似功能的人来说可能值得回答。基本上,您可以在AdminResource上为AdminModuleResource创建嵌入式资源,并在AdminResourceAssembler中为这些嵌入式资源构建链接。下面的代码是这个答案的简化版本
在AdminResource上添加:
@JsonUnwrapped
private Resources<EmbeddedWrapper> embeddeds;
// + setters/getters
在AdminResourceAssembler上添加:
EmbeddedWrappers wrapper = new EmbeddedWrappers(true);
List<EmbeddedWrapper> wrappers = (List<EmbeddedWrapper>) super.buildEmbeddables(entity);
Set<AdminModuleResource> moduleResources = adminResource.getModuleResources( );
if(!moduleResources.isEmpty( ))
wrappers.add(wrapper.wrap(adminModuleResourceAssembler.toResources(moduleResources)));
adminResource.setEmbeddeds(new Resources<>(wrappers));
在Eclipse中,我可以将一个源文件夹作为“链接源文件夹”添加到我的android项目中。我如何在Android Studio实现同样的事情呢? 或者是否可以添加一个外部文件夹来构建Gradle?
我正在使用IntelliJ IDEA14,我想在src之外向JAR文件添加文件。这是我目前的项目结构。 我想将layout.txt和saveddata.txt添加到JAR文件可执行文件中。我在网上搜索了一段时间也找不到解决方法 以防你需要看我的代码。这就是我读取文件的方式 这是我的项目结构
我正在使用配置了@EnableHypermediaSupport(类型=HAL)的Spring Boot和Spring Hateoas。虽然这在基本场景中效果很好,但我希望能够向链接添加其他属性。例如,很容易返回将呈现以下链接的链接: 我想做的是向something rel中的对象添加更多属性。例如: 在不创建自己的DTO的情况下,最好的方法是什么(最好使用ControlllerLinkBuild
但根本不管用。
我正在使用Dropwizard 8.2.0构建REST服务。我有2个资源:FolderResource和FileResource: 我做错了什么?
在Eclipse中,我可以将一个源文件夹作为“链接源文件夹”添加到我的Android项目中。如何在Android Studio中实现同样的效果? 或者是否可以在Gradle中添加外部文件夹?