Interface IResourceGraph
- Namespace
- JsonApiDotNetCore.Configuration
- Assembly
- JsonApiDotNetCore.dll
Metadata about the shape of JSON:API resources that your API serves and the relationships between them. The resource graph is built at application startup and is exposed as a singleton through Dependency Injection.
[PublicAPI]
public interface IResourceGraphMethods
FindResourceType(string)
Attempts to get the metadata for the resource that is publicly exposed by the specified name. Returns null when not found.
ResourceType? FindResourceType(string publicName)Parameters
- publicNamestring
Returns
FindResourceType(Type)
Attempts to get metadata for the resource of the specified CLR type. Returns null when not found.
ResourceType? FindResourceType(Type resourceClrType)Parameters
- resourceClrTypeType
Returns
GetAttributes<TResource>(Expression<Func<TResource, object?>>)
Gets the attributes for TResource that are targeted by the selector.
IReadOnlyCollection<AttrAttribute> GetAttributes<TResource>(Expression<Func<TResource, object?>> selector) where TResource : class, IIdentifiableParameters
- selectorExpression<Func<TResource, object>>
- Should be of the form: (TResource resource) => new { resource.Attribute1, resource.Attribute2 } 
Returns
Type Parameters
- TResource
- The resource CLR type for which to retrieve attributes. 
GetFields<TResource>(Expression<Func<TResource, object?>>)
Gets the fields (attributes and relationships) for TResource that are targeted by the selector.
IReadOnlyCollection<ResourceFieldAttribute> GetFields<TResource>(Expression<Func<TResource, object?>> selector) where TResource : class, IIdentifiableParameters
- selectorExpression<Func<TResource, object>>
- Should be of the form: (TResource resource) => new { resource.Attribute1, resource.Relationship2 } 
Returns
Type Parameters
- TResource
- The resource CLR type for which to retrieve fields. 
GetRelationships<TResource>(Expression<Func<TResource, object?>>)
Gets the relationships for TResource that are targeted by the selector.
IReadOnlyCollection<RelationshipAttribute> GetRelationships<TResource>(Expression<Func<TResource, object?>> selector) where TResource : class, IIdentifiableParameters
- selectorExpression<Func<TResource, object>>
- Should be of the form: (TResource resource) => new { resource.Relationship1, resource.Relationship2 } 
Returns
Type Parameters
- TResource
- The resource CLR type for which to retrieve relationships. 
GetResourceType(string)
Gets the metadata for the resource that is publicly exposed by the specified name. Throws an InvalidOperationException when not found.
ResourceType GetResourceType(string publicName)Parameters
- publicNamestring
Returns
GetResourceType(Type)
Gets the metadata for the resource of the specified CLR type. Throws an InvalidOperationException when not found.
ResourceType GetResourceType(Type resourceClrType)Parameters
- resourceClrTypeType
Returns
GetResourceType<TResource>()
Gets the metadata for the resource of the specified CLR type. Throws an InvalidOperationException when not found.
ResourceType GetResourceType<TResource>() where TResource : class, IIdentifiableReturns
Type Parameters
- TResource
GetResourceTypes()
Gets the metadata for all registered resources.
IReadOnlySet<ResourceType> GetResourceTypes()