/ Methoden des Spring Expose-Controllers als Links - Spring-Boot, Spring-Daten, Feder-Hateoas

Spring Expose Controller Methoden als Links - Spring-Boot, Feder-Daten, Feder-Hassoas

Ich habe eine Gruppenentität, die Gruppen (von Benutzern) in einer Datenbank darstellt. Die GroupRepository-Klasse verfügt über einige Methoden, mit denen ich die Group-Tabelle abfragen kann, wie zum Beispiel: List<Group> findByGroupName(String name);

Diese Methode hat eine URL, die angezeigt wird, wenn ich die URL als direktes übergeordnetes Element dieser Methode ausrichte.

curl http://localhost:8080/groups/search/

{
"_links" : {
"searchNames" : {
"href" : "http://localhost:8080/groups/search/seachNames{?terms}",
"templated" : true
},
"findByName" : {
"href" : "http://localhost:8080/groups/search/findByName{?name}",
"templated" : true
}
}

Ich baue auch einen Controller, um weitere REST-Endpunkte hinzuzufügen, und ich möchte, dass diese wie oben als "_links" angezeigt werden. Wie lassen sich meine Methoden so aussehen?

AKTUALISIEREN
Hier ist ein Teil meines Repository-Codes.

@Transactional(readOnly=true)
public interface GroupRepository extends PagingAndSortingRepository<Group, Long> {

Group findByName(@Param("name") String name);

@Query(value="SELECT * FROM `Group` WHERE name LIKE CONCAT("%",:terms,"%") ORDER BY CASE WHEN name = :terms THEN 0 WHEN name LIKE CONCAT(:terms,"%") THEN 1 WHEN name LIKE CONCAT("%",:terms,"%") THEN 2 WHEN name LIKE CONCAT("%",:terms) THEN 3 END",
nativeQuery=true)
List<Group> searchNames(@Param("terms") String terms);
}

Antworten:

1 für die Antwort № 1

Dies ist die HAL-Darstellung einer Ressource. Es ist ein Standard.

Hier ist eine theoretische Quelle: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

Hier ist der Standard dokumentiert: https://tools.ietf.org/html/draft-kelly-json-hal-06

Wenn Sie Daten als HAL freigeben möchten, werfen Sie einen Blick auf Spring HateOas und Spring Data.

https://spring.io/guides/gs/rest-hateoas/