How can you customise self, parent, children links in spring data rest with neo4j

我的未来我决定 提交于 2019-12-31 02:35:07

问题


I am using spring data rest to create an API over neo4j. I don't want to expose nodeId in my URLs, therefore I have a UUID instead. More info on here:

How can I change neo4j Id to UUID and get finder methods to work?

How can I modify the auto-generated links by the spring-data-rest to reflect the change to UUID instead of nodeId?

Thanks

----UPDATED---

public class CustomBackendIdConverter implements BackendIdConverter {

@Autowired
PracticeAreaRepository practiceAreaRepository;

@Override
public Serializable fromRequestId(String id, Class<?> entityType) {
    return id;
}

@Override
public String toRequestId(Serializable id, Class<?> entityType) {
    if(entityType.equals(PracticeArea.class)) {
        PracticeArea c = (PracticeArea) id;
        return c.getPracticeAreaId().toString();
    }
    return id.toString();
}

@Override
public boolean supports(Class<?> delimiter) {
    return true;
}
}

回答1:


Spring Data REST has a BackendIdConverter SPI interface for you implement to translate what's discovered as the identifying part of the URI into whatever you're using in the repository's findOne(…) method.

Simply create an implementation of this interface that does the two-way conversion and register it as Spring bean in your ApplicationContext and it will be picked up by Spring Data REST automatically.



来源:https://stackoverflow.com/questions/28190253/how-can-you-customise-self-parent-children-links-in-spring-data-rest-with-neo4

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!