Initial Commit ...
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
using GraphQL.Server;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace xDataService.Interfaces {
|
||||
/// <summary>
|
||||
/// this is a helper class which provides all requirements to providing GraphQL
|
||||
/// based data manipulating mechanism ...
|
||||
/// </summary>
|
||||
public interface IXGraphQLHelper {
|
||||
/// <summary>
|
||||
/// Register all GraphQL Enum Types ...
|
||||
/// Enum Types use to Map string values to Enum values in propper way and vise versa in GraphQL ...
|
||||
/// must extended from EnumerationGraphType ...
|
||||
/// </summary>
|
||||
void AddXGraphEnumTypes (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Register all GraphQL Object Types ...
|
||||
/// GraphQL works based on Types, so for representing each data you have to define a Type ...
|
||||
/// must extended from ObjectGraphType<T> or XBaseGraphObjectType<TKey>
|
||||
/// </summary>
|
||||
void AddXGraphObjectTypes (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Register all GraphQL Input Types ...
|
||||
/// InputTypes represent recieving data structure in GraphQL for doing mutations ...
|
||||
/// must extended from InputObjectGraphType<T> ...
|
||||
/// </summary>
|
||||
void AddXGraphInputTypes (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Register all GraphQL Queries ...
|
||||
/// Queries in GraphQL used to provide data fetch and retrieve mechanism ...
|
||||
/// extended from ObjectGraphType ...
|
||||
/// </summary>
|
||||
void AddXGraphQueries (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Register all GraphQL Mutations ...
|
||||
/// Mutations is an Action types in GraphQL which data changed through them, like as Add, Update, Delete ...
|
||||
/// must extends from ObjectGraphType ...
|
||||
/// </summary>
|
||||
void AddXGraphMutations (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Register all GraphQL Subscriptions ...
|
||||
/// Subscriptions are listeners to specific events on data in GraphQL ...
|
||||
/// must extended from ObjectGraphType and implements IXBaseRepositoryEvents<TEntity> ...
|
||||
/// </summary>
|
||||
void AddXGraphSubscriptions (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Register all GraphQL Schemas ...
|
||||
/// each available Entity in Database must described to GraphQL with all Graph based stuffs such as :
|
||||
/// Queries, Types and etc, this must done through an Schema class.
|
||||
/// must extended from Schema ...
|
||||
/// </summary>
|
||||
void AddXGraphSchemas (IServiceCollection services);
|
||||
|
||||
/// <summary>
|
||||
/// Add Schemas to GraphQL Builder ...
|
||||
/// here you must add all registered Schemas to GraphQLBuilder ...
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <returns></returns>
|
||||
IGraphQLBuilder AddXGraphTypes (IGraphQLBuilder builder);
|
||||
|
||||
/// <summary>
|
||||
/// Use all Registered Schemas by GraphQL<T> and and GraphQLWebSockets<T> ...
|
||||
/// </summary>
|
||||
/// <param name="app"></param>
|
||||
void UseXGraph (IApplicationBuilder app);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user