I would like to deal with JSON that can be either:
{
  "data": {
    "id": "1",
    "type": "permissions",
    "attributes": { "permission": "VIEW" }
    "relationships": {
      "user": { "data": { "id": "U1", "type": "users" } }
      "resource": { "data": { "id": "G1", "type": "groups" } }
    }
  }
}
OR
{
  "data": {
    "id": "1",
    "type": "permissions",
    "attributes": { "permission": "VIEW" }
    "relationships": {
      "user": { "data": { "id": "U1", "type": "users" } }
      "resource": { "data": { "id": "P1", "type": "pages" } }
    }
  }
}
That is, I would like the "resource" relationship type to be entirely customizable ("groups" or "pages" or anything else).
Is there a way to do that with Katharsis? I was hoping for some kind of inheritance...
@JsonApiResource(type = "permissions")
public class Permission {
  ...
  @JsonApiToOne
  private SharedResource resource;
  ...
}
public interface SharedResource {
  ...
}
@JsonApiResource(type = "pages")
public class Page implements SharedResource {
  ...
}
But that doesn't work completely. I've finagled it enough where a findAll returns pretty well (though the links don't reflect the type "pages"), but any POST with the relationships set returns a 405 Method Not Allowed.
Not sure it's possible, but I'd really like it to be since I like Katharsis.
 
                        
I think what you're referring to is polymorphic entity types. If so, this has been asked for repeatedly but currently doesn't exist.