Я абсолютный новичок в GraphQL. Так что извиняюсь, если вопрос любительский. Я пишу эту конечную точку graphQL, где она будет фильтровать человека по имени. Работает хорошо, но я хочу иметь возможность
фильтровать по нескольким параметрам, таким как имя, возраст, номер телефона
или
использовать комбинация параметров для поиска ..
Моя текущая программа:
var express = require("express");
var express_graphql = require("express-graphql");
var { buildSchema } = require("graphql");
var Sequelize = require("sequelize")
var db = new Sequelize(
"users",
"root",
"pass",
{
host: "localhost",
dialect: "mysql"
}
);
var calls = db.define(
"calls",
{
person_id: {
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true
},
name: {
type: Sequelize.STRING,
allowNull: false
},
age: {
type: Sequelize.INTEGER,
allowNull: false
},
address: {
type: Sequelize.STRING,
allowNull: false
},
company: {
type: Sequelize.String,
allowNull: false
},
email: {
type: Sequelize.STRING,
allowNull: false
}
},
{
tableName: "person"
}
);
// Construct a schema, using GraphQL schema language
var schema = buildSchema(`
type Query {
Person(person_id: Integer!): [Person]
}
type Person {
person_id: Integer
name: String
age: Integer
address: String
company: String
email: String
}
`);
var getperson = function(args) {
if (args.person_id) {
var p_name = args.person_id;
return calls.findAll({
where: {
name: p_name
}
});
}
};
// The root provides a resolver function for each API endpoint
var root = {
person: getperson
};
var app = express();
app.use(
"/graphql",
express_graphql({
schema: schema,
rootValue: root,
graphiql: true
})
);
app.listen(4000);
console.log("Running a GraphQL API server at http://localhost:4000/graphql");
Попытка сделать это:
type Query {
Person(person_id: Integer!): [Person]
Person(name: String!): [Person]
}
Но он говорит, что человек может быть определяется только один раз.