Я использую Apollo Graphql для получения списка различных моделей или типов. Я пытался использовать inhirit, но я не получил его. Я пытался использовать весь объект, но я хочу пропустить поля, которые мне не нужны.
Я создал свой тип схемы с пустыми полями, потому что все объекты не имеют всех полей.
Я поясню лучше на следующем примере:
Это простой пример дизайна класса (OBJECT):
car {
name: String
wheelNumber: Integer
}
trunk extends car {
cargoSize: Integer
}
Поэтому я создал свою схему Graphql следующим образом :
input vehicleInput {
name: String,
wheelNumber: Integer,
cargoSize: Integer
}
type vehicle {
name: String,
wheelNumber: Integer,
cargoSize: Integer
}
type Query {
vehicles: [vehicle]
}
type Mutation {
addVehicle(input: vehicleInput ): vehicle!
}
Пример резолвера:
import { vehicle } from "./model";
export const resolvers = {
Query: {
vehicles : () => {
return vehicle.find({});
},
},
Mutation: {
addVehicle: (_, { input }) => {
const inputResponse = vehicle.create(input);
return inputResponse;
},
}
};
Когда я выполняю запрос транспортных средств, он возвращает все поля, даже если у объекта нет поля cargoSize, он возвращает cargoSize: null
.
query {
vehicles {
name
wheelNumber
cargoSize
}
}
Я хотел бы пропустить поле cargoSize, когда оно пустое. Вот так:
{
vehicles: [
{
name: "car 1",
wheelNumber: 4
},
{
name: "car 2",
wheelNumber: 4
},
{
name: "truck 1",
wheelNumber: 8,
cargoSize: 65
},
{
name: "car 3",
wheelNumber: 4
},
]
}
Вместо этого:
{
vehicles: [
{
name: "car 1",
wheelNumber: 4,
cargoSize: null
},
{
name: "car 2",
wheelNumber: 4,
cargoSize: null
},
{
name: "truck 1",
wheelNumber: 8,
cargoSize: 65
},
{
name: "car 3",
wheelNumber: 4,
cargoSize: null
},
]
}
Есть ли способ сделать это? Я занимался исследованиями, но ничего об этом не нашел.