Serveur Express
1 min
Le serveur Express se lance via une fonction start. La signature de cette fonction est :
type ServerConfig = {
cookieOptions?: CookieSessionInterfaces.CookieSessionOptions;
corsOptions?: CorsOptions;
routes?: RequestHandler[];
securityHeadersOptions?: HelmetOptions;
graphql: {
resolvers: IResolvers[];
typeDefs: DocumentNode[];
security?: { payloadLimit?: string; armorConfig?: GraphQLArmorConfig };
};
logger: {
info: (message: unknown) => void;
warn: (message: unknown) => void;
error: (message: unknown) => void;
};
process: {
resolveFirstView: (args: { projectId: string; viewId?: string; metadata?: object }) => Promise<string>;
extendWith?: (process: Process) => Promise<Process & object>;
};
session: {
validateProjectId: (args: { projectId: string; sessionId: string | null | undefined }) => Promise<boolean>;
resolveProjectFromContext: (args: { sessionId: string | null | undefined }) => Promise<string>;
resolveContext?: (token: string) => Promise<object>;
};
};
export const start: (config: ServerConfig) => Promise<void>;La description des paramĂštres de la fonction start est :
- cookieOptions : objet permettant de configurer la gestion des cookies ; voir la documentation de la bibliothÚque cookie-session pour la liste des éléments configurables ;
- routes : liste de routes propres Ă l'OAV Ă enregistrer auprĂšs du serveur Express ;
- securityHeadersOptions : objet permettant de configurer les headers de sécurité ; voir la configuration de la bibliothÚque helmet pour la liste des éléments configurables ;
- graphql :
- resolvers : resolvers GraphQL des vues ;
- typeDefs : typeDefs GraphQL des vues ;
- security :
- payloadLimit : valeur numĂ©rique permettant de dĂ©finir la taille maximale autorisĂ©e de la payload des requĂȘtes GraphQL entrantes. Par dĂ©faut, la valeur est 50kb ;
- armorConfig : objet permettant de configurer la bibliothĂšque graphql-armor. Les rĂšgles de validation configurables sont :
- **cost limit ;
- **max aliases ;
- **max depth ;
- **max directives ;
- **max tokens ;
- logger : objet exposant les fonctions de logging ; trois niveaux sont utilisés : info, warn, et error ;
- process :
- resolveFirstView : fonction asynchrone définissant l'identifiant de la premiÚre vue.
[info] Dans la fonction resolveFirstView, la valeur de la propriété viewId est nulle dans le cas d'un nouveau parcours et non nulle dans le cas d'une reprise de parcours.
- extendWith : fonction asynchrone permettant d'attacher des informations complémentaires à l'objet process. Sa signature est :
- (process: Process) => Promise<Process & object>
- session :
- validateProjectId : fonction asynchrone vérifiant si l'identifiant passé en paramÚtre correspond à une entité Project valide.
- resolveProjectFromContext : fonction asynchrone initialisant une entité Project à partir d'un contexte.
- resolveContext : fonction asynchrone responsable de récupérer le contexte à partir d'un token d'authentification.