Я хочу создать мутацию apis, где ввод может быть разных типов, что-то вроде интерфейса, который у нас есть в типах. Я знаю, что у нас не может быть интерфейса в типах ввода, я хочу знать, как мы можем поддерживать несколько типов ввода в одном входе. Чтобы объяснить проблему, я использую фиктивный пример:
input CreateCatInput{
id: String
name: String
}
input CreateDogInput{
id: String
name: String
breed: String
}
input CreateElephantInput{
id: String
name: String
weight: String
}
Теперь, если мы хотим написать apis для него, мне придется написать api для каждого типа
createCat(input: CreateCatInput!)
createDog(input: CreateDogInput!)
createElephant(input: CreateElephantInput!)
Проблема, с которой я сталкиваюсь при таком подходе:
- Мне придется написать много apis, предположим, что если я поддерживаю 20 типов животных, мне придется написать 20 create apis. Но мне не нравятся эти много apis для пользователей, я хочу, чтобы пользователь видел очень мало apis.
- Предположим, мы поддерживаем 20 типов животных, как пользователь узнает, какие все животные поддерживаются, они мне нужно будет увидеть все API, которые мы поддерживаем, в проводнике API.
Решение, которое я ищу, состоит в том, что у меня есть только один API:
createAnimal(input: CreateAnimalInput!)
Поскольку поддержка интерфейса в настоящее время не существует, как компании реализуют входные данные, которые могут быть нескольких типов? Как я могу определить входные данные так, чтобы я мог дать только один вход в API?
Я прочитал это предложение , но оно включает определение аннотаций, в настоящее время я пробую это. Я хочу посмотреть, как другие люди решают эту проблему.