小编Dee*_*kar的帖子

制作 Graphql 输入,其中输入可以采用不同类型

我想创建mutation apis,其中输入可以是不同的类型,比如我们在类型中拥有的接口。我知道我们不能在输入类型中有接口,我想知道我们如何在一个输入中支持多种输入类型。为了解释这个问题,我使用了一个虚拟示例:

input CreateCatInput{
  id: String
  name: String
}

input CreateDogInput{
  id: String
  name: String
  breed: String
}

input CreateElephantInput{
  id: String
  name: String
  weight: String
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我们想为它编写 apis,我将不得不为每种类型编写 api

createCat(input: CreateCatInput!)
createDog(input: CreateDogInput!)
createElephant(input: CreateElephantInput!)
Run Code Online (Sandbox Code Playgroud)

我对这种方法的问题是:

  1. 我将不得不编写很多 api,假设如果我支持 20 种动物,那么我将不得不编写 20 个创建 api。但是我不喜欢为用户提供这么多的api,我希望用户应该看到很少的api。
  2. 假设我们支持 20 种动物,用户如何知道所有动物都支持什么,他们必须在 API Explorer 中看到我们支持的所有 api。

我正在寻找的解决方案是我只有一个 api :

  createAnimal(input: CreateAnimalInput!)
Run Code Online (Sandbox Code Playgroud)

由于目前没有接口支持,公司如何实现可以是多种类型的输入?如何定义输入,以便我只能在 api 中提供一个输入?

我已经阅读了这个建议,但它涉及定义注释,我目前正在尝试。我想看看其他人是如何解决这个问题的。

编辑:看起来现在已经在这个主题上做了很多工作https://github.com/graphql/graphql-spec/pull/733并且该功能将很快可用。

graphql graphql-java graphql-schema

3
推荐指数
1
解决办法
2731
查看次数

VS Code 中除 main.go 之外的调试文件

我正在使用 VS 代码编辑器在 go 中编写 CLI。我无法弄清楚如何调试代码部分。

我的目录结构是:

- test
  - main.go
  - cmd
    - login.go
    - root.go
Run Code Online (Sandbox Code Playgroud)
  1. 我在 login.go 中设置了断点,但是如果我在这个文件中运行“开始调试”,我会收到错误
Can not debug non-main package
Process exiting with code: 1
Run Code Online (Sandbox Code Playgroud)
  1. 我尝试在 main.go 中运行调试器,但调试器不会去 login.go 文件,因为我没有明确地写 test login
API server listening at: 127.0.0.1:48423
A longer description that spans multiple lines and likely contains
examples and usage of using your application. For example:
cd .
Cobra is a CLI library for Go that empowers applications.
This application is a tool to generate …
Run Code Online (Sandbox Code Playgroud)

go visual-studio-code delve go-cobra

0
推荐指数
1
解决办法
3300
查看次数

我需要生成序列的一部分 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ...(该数字重复多次,等于)

我得到了这个作为家庭作业,但我坚持理解我的代码的错误行为。

任务如下:编写一个程序,打印出序列 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ...(该数字重复多次,直到等于)的一部分。程序的输入是一个正整数 n:程序应该打印的序列元素的数量。输出以空格分隔的单行数字序列。

例如,如果 n = 7,那么程序应该输出 1 2 2 3 3 3 4。

样本输入 1:

7

示例输出 1:

1 2 2 3 3 3 4

这是我的代码(底部输出:

import java.util.Scanner;

class Test1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        

        System.out.println("Enter: );
        int totalNum = scanner.nextInt();
        
        int counter = 0;
        
        for(int i = 1; i <= totalNum; i++){
            for(int j …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
287
查看次数