簡體   English   中英

GraphQL:如何在不使用 graphql-type-json 的情況下處理混合了 String 和 JSON 的模式?

[英]GraphQL: How to handle a schema with a mix of String and JSON without using graphql-type-json?

我是 GraphQL 的新手並且還在學習。 我有一個 rest API 返回響應如下:

    {
    "campaign_types": [
        {
            "name": "USA",
            "scenarios": [
                {
                    "id": "jsdx-sdsd-xsds",
                    "name": "NBA"
                },
                {
                    "id": "jsds-sdfs-xdfd",
                    "name": "NFL"
                }
            ],
            "id:": 0
        },
        {
            "name": "Australia",
            "scenarios": [
                {
                    "id": "jtds-sada-xdfs",
                    "name": "AFL"
                },
                {
                    "id": "klhj-sdfs-fdfs",
                    "name": "NRL"
                }
            ],
            "id:": 1
        }
    ]
}

我想在另一個使用TypeScriptReact前端構建的應用程序中將其轉換為 GraphQL API,因為它僅處理 GraphQL API。 我的要求是在我的第二個應用程序中,當我進行 GraphQL API 調用時,它應該返回與其余 API 相同的 API 響應。

當我按如下方式定義我的 GraphQL 架構時,出現此錯誤:

type CommsCampaignType {
    id: ID!
    name: String!
    scenarios: [JSON]
}

錯誤:

Error: Type "JSON" not found in document

我看到一些帖子說使用grahql-type-json但如果有辦法的話我想不使用它。 我正在尋找的最終結果是在我的 UI 中,我有一個下拉列表,它將 Campaign_Type 名稱顯示為“USA”、“Australia”,當我選擇它時應該顯示相應的場景名稱“NBA”、“NFL”和“AFL” ,“NRL”分別在第二個下拉列表中。 所以我的 GraphQL API 查詢應該能夠產生那個結果。

如果有人可以為此提出最佳方法,那就太好了。 謝謝。

定義Scenario類型:

type Scenario {
  id: ID!
  name: String!
}

然后在您的CommsCampaignType中使用它:

type CommsCampaignType {
    id: ID!
    name: String!
    scenarios: [Scenario]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM