Je suis en train de tester mon API GraphQL, mais j'aimerais la nettoyer un peu. Il est à noter que j'utilise chai-http
pour les demandes de réseau. Voici ce que je suis en train de faire (qui fonctionne):Test de l'API GraphQL
let createUser = (()=> {
return new Promise((resolve, reject) => {
chai.request(server)
.post('/api/graphql/')
.set('content-type', 'application/json')
.send({ 'query' :
'mutation users { \
user : addUser(inputs: { \
firstName: \"Test\", \
lastName: \"User\", \
email: \"[email protected]\", \
}) { \
id, \
firstName \
} \
}'
})
.end((err, res) => {
if (err) { reject(err) }
let data = res.body.data;
let user = data.user;
resolve(user);
})
});
});
Cependant, je voudrais nettoyer un peu et faire quelque chose comme ceci:
let createUser = (() => {
let newUser = {
firstName: 'Test',
lastName: 'User',
email: '[email protected]'
};
return new Promise((resolve, reject) => {
chai.request(server)
.post('/api/graphql/')
.set('content-type', 'application/json')
.send({ 'query' :
'mutation users { \
user : addUser(inputs: ' + JSON.stringify(newUser) + ') { \
id, \
firstName \
} \
}'
})
.end((err, res) => {
if (err) { reject(err) }
let data = res.body.data;
let user = data.user;
resolve(user);
})
});
});
Cependant, ce style fait de placer les entrées d'objet ne fonctionnent pas et renvoie une erreur de demande incorrecte. Voici quelle partie de l'objet d'erreur renvoyé lit:
Toutes les idées pourquoi cela ne fonctionne pas? Merci d'avance!
Merci bourgeon, va l'essayer! @vince – Thomas
Hey @vince, de toute façon pour nettoyer la réponse que je veux revenir? Dire que je voulais id, prénom, lastName, facebookUID, email, etc. retourné après la création? Qu'est-ce que tu penses? – Thomas
Dans ce cas, vous pouvez toujours retourner plus de champs. À l'heure actuelle, la requête renvoie «id» et «firstName», mais vous pouvez également continuer à ajouter à cette liste et inclure 'lastName',' facebookUID', 'email', etc. – vince