Najpierw w ogóle czytałem poprzednie pytanie: Exposing link on collection entity in spring data RESTnarażając linki Hypermedia dotyczące gromadzenia nawet ona pusta wykorzystujące Wiosna danych Rest
Ale problem nadal utrzymują się bez podstęp.
Rzeczywiście, jeśli chcę narażać łącza do zbiorów zasobów używam następujący kod:
@Component
public class FooProcessor implements ResourceProcessor<PagedResources<Resource<Foo>>> {
private final FooLinks fooLinks;
@Inject
public FooProcessor(FooLinks fooLinks) {
this.FooLinks = fooLinks;
}
@Override
public PagedResources<Resource<Foo>> process(PagedResources<Resource<Foo>> resource) {
resource.add(fooLinks.getMyCustomLink());
return resource;
}
}
To działa poprawnie z wyjątkiem gdy zbiór jest pusty ...
Jedynym sposobem na zastąpienie mojego kodu jest:
@Component
public class FooProcessor implements ResourceProcessor<PagedResources> {
private final FooLinks fooLinks;
@Inject
public FooProcessor(FooLinks fooLinks) {
this.FooLinks = fooLinks;
}
@Override
public PagedResources process(PagedResources resource) {
resource.add(fooLinks.getMyCustomLink());
return resource;
}
}
Ale dzięki temu link będzie dostępny dla wszystkich kolekcji s.
Potrafię stworzyć warunki do ujawnienia tylko tego, czego chcę, ale nie sądzę, że jest czysty.