Paramétrage
Le connecteur est programmé pour fonctionner avec deux CMD Headless différents : WordPress et Directus. Pour configurer le CMS qui sera utilisé par le connecteur, il y a deux fichiers à modifier.
Environnement
Pour utiliser le connecteur, il faut renseigner les informations du CMS qui sera utilisé comme dans l'exemple ci-dessous. Il est possible de supprimer les éléments du CMS qui n'est pas utilisé.
# DIRECTUS DIRECTUS_URL=http://localhost:8055 DIRECTUS_KEY=key DIRECTUS_SOCIAL_NETWORK_PATH=/items/social_networks DIRECTUS_PAGE_PATH=/items/pages DIRECTUS_LANGUAGE_PATH=/items/languages DIRECTUS_CHANNEL_PATH=/items/channels DIRECTUS_FEATURE_PATH=/items/features DIRECTUS_ASSETS_PATH=/assets DIRECTUS_IMPORTANT_NEWS_PATH=/items/important_news DIRECTUS_CONTACT_US_PATH=/items/contact_us DIRECTUS_LOGIN_PATH=/items/login DIRECTUS_WIDGET_PATH=/items/widgets DIRECTUS_FIELDS=?fields[]=* DIRECTUS_FIELDS_TRANSLATIONS=,translations.* DIRECTUS_FIELDS_AUTHORIZATION=,authorization.* # WORDPRESS WORDPRESS_URL=http://localhost:9090/wp-json/wp/v2 WORDPRESS_ASSETS_PATH=http://localhost:9090/wp-content/uploads/ WORDPRESS_OPTIONS=?acf_format=standard&_fields=acf,id&per_page=100 WORDPRESS_SOCIAL_NETWORK_PATH=/social-network WORDPRESS_FEATURE_PATH=/features WORDPRESS_PAGE_PATH=/page-api WORDPRESS_IMPORTANT_NEWS_PATH=/important-news WORDPRESS_CONTACT_US_PATH=/contact-us WORDPRESS_LOGIN_PATH=/login WORDPRESS_CHANNEL_PATH=/channels WORDPRESS_WIDGET_PATH=/widgets WORDPRESS_LANGUAGE_PATH=/language
Modules
Dans le fichier module, il faut importer le module que l'on souhaite utiliser et le renseigner dans la partie imports comme ci-dessous indiqué par les chevrons. Il faudra également modifier le module qui s'occupe des assets.
@Module({ imports: [ GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: join(process.cwd(), 'src/schema.gpl'), sortSchema: true, }), ConfigModule.forRoot({ envFilePath: '.env' }), <<WordpressModule>>, ], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(<<WordpressImageMiddleware>>).forRoutes('assets'); } }
Paramètres d'appels
URL en méthode POST
<host>/graphql
- host : adresse du serveur
Header de la requête :
{ "Content-Type": application/json }
Body des requêtes :
query { channels{ id code routerLink icon color filterable translations{ languagesCode label } } }
query { contactUs{ id to icon translations{ languagesCode content title } } }
query { features(status: "published") { id description icon iconSvgDark iconSvgLight link menu position routerLink ssoService status type translations{ languagesCode searchKeywords shortTitle title } authorization { roles authorization } settingsByRole{ position role } } }
query { pages(status: "published") { id status icon iconSvgDark iconSvgLight position statisticName translations { languagesCode content title } } }
query { widgets(status: "published") { id status description widget iconSvgDark iconSvgLight icon link position ssoService statisticName routerLink color type translations{ languagesCode content title } authorization { roles authorization } settingsByRole{ position role } } }
query { socialNetworks{ id icon link title } }
query { login{ id translations { languagesCode connexionText notAuthenticatedText } } }
query { languages{ code direction name } }
query { importantNews(status: "published"){ id status image link color position statisticName translations{ languagesCode content buttonLabel title } authorization { roles authorization } } }
URL en méthode GET
<host>/assets/<image-name>
- host : adresse du serveur
- image-name : nom de l'image
Format de retour
Format attendu
- Code HTTP 200 : si tout s'est bien passé
Cas d'erreur
- Erreur HTTP 4xx ou 5xx : En cas de problème ou erreur
Exemple
<host>/graphql
query { languages{ code direction name } }
{ "data": { "languages": [ { "code": "fr", "direction": "ltr", "name": "Français" }, { "code": "en", "direction": "ltr", "name": "English" } ] } }