Fix for #14 where links in linked entities weren't being rendered correctly.
Also added another entity and Repository to push the Person entity down another step in the hierarchy to test this. This change mirrors the one I did to fix #12.
This commit is contained in:
@@ -899,7 +899,9 @@ public class RepositoryRestController
|
||||
Map<String, Object> entityDto = extractPropertiesLinkAware(linkedRepoMeta.rel(),
|
||||
linkedEntity,
|
||||
linkedRepoMeta.entityMetadata(),
|
||||
baseUri);
|
||||
buildUri(baseUri,
|
||||
linkedRepoMeta.name(),
|
||||
linkedId));
|
||||
URI selfUri = addSelfLink(baseUri, entityDto, linkedRepoMeta.name(), linkedId);
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package org.springframework.data.rest.test.webmvc;
|
||||
|
||||
import java.util.List;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.OneToMany;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jon@jbrisbin.com>
|
||||
*/
|
||||
@Entity
|
||||
public class Family {
|
||||
|
||||
@Id @GeneratedValue private Long id;
|
||||
private String surname;
|
||||
@OneToMany
|
||||
private List<Person> members;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getSurname() {
|
||||
return surname;
|
||||
}
|
||||
|
||||
public void setSurname(String surname) {
|
||||
this.surname = surname;
|
||||
}
|
||||
|
||||
public List<Person> getMembers() {
|
||||
return members;
|
||||
}
|
||||
|
||||
public void setMembers(List<Person> members) {
|
||||
this.members = members;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package org.springframework.data.rest.test.webmvc;
|
||||
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jon@jbrisbin.com>
|
||||
*/
|
||||
public interface FamilyRepository extends CrudRepository<Family, Long> {
|
||||
}
|
||||
@@ -1,11 +1,14 @@
|
||||
#!/bin/sh
|
||||
curl -d '{"name" : "John Doe"}' -H "Content-Type: application/json" http://localhost:8080/person
|
||||
curl -d '{"name" : "Jane Doe"}' -H "Content-Type: application/json" http://localhost:8080/person
|
||||
curl -d '{"surname" : "Doe"}' -H "Content-Type: application/json" http://localhost:8080/family
|
||||
curl -d '{"name" : "John Doe"}' -H "Content-Type: application/json" http://localhost:8080/people
|
||||
curl -d '{"name" : "Jane Doe"}' -H "Content-Type: application/json" http://localhost:8080/people
|
||||
curl -d 'http://localhost:8080/people/1
|
||||
http://localhost:8080/people/2' -H "Content-Type: text/uri-list" http://localhost:8080/family/1/members
|
||||
curl -d '{"postalCode":"12345","province":"MO","lines":["1 W 1st St."],"city":"Univille"}' -H "Content-Type: application/json" http://localhost:8080/address
|
||||
curl -d "http://localhost:8080/address/1" -H "Content-Type: text/uri-list" http://localhost:8080/person/1/addresses
|
||||
curl -d "http://localhost:8080/address/1" -H "Content-Type: text/uri-list" http://localhost:8080/people/1/addresses
|
||||
curl -d '{"postalCode":"54321","province":"MO","lines":["2 W 1st St."],"city":"Univille"}' -H "Content-Type: application/json" http://localhost:8080/address
|
||||
curl -d "http://localhost:8080/address/2" -H "Content-Type: text/uri-list" http://localhost:8080/person/2/addresses
|
||||
curl -d "http://localhost:8080/address/2" -H "Content-Type: text/uri-list" http://localhost:8080/people/2/addresses
|
||||
curl -d '{"type" : "twitter", "url": "#!/johndoe"}' -H "Content-Type: application/json" http://localhost:8080/profile
|
||||
curl -d "http://localhost:8080/profile/1" -H "Content-Type: text/uri-list" http://localhost:8080/person/1/profiles
|
||||
curl -d "http://localhost:8080/profile/1" -H "Content-Type: text/uri-list" http://localhost:8080/people/1/profiles
|
||||
curl -d '{"type" : "facebook", "url": "/janedoe"}' -H "Content-Type: application/json" http://localhost:8080/profile
|
||||
curl -d '{"_links": [{"rel":"facebook", "href": "http://localhost:8080/profile/2"}]}' -H "Content-Type: application/json" http://localhost:8080/person/2/profiles
|
||||
curl -d '{"_links": [{"rel":"facebook", "href": "http://localhost:8080/profile/2"}]}' -H "Content-Type: application/json" http://localhost:8080/people/2/profiles
|
||||
Reference in New Issue
Block a user