Как написать файл схемы graphql для данных, хранящихся в виде пар ключ-значение на карте - PullRequest
0 голосов
/ 21 мая 2019

Итак, у меня есть данные XML от веб-службы, в которой есть код страны и описания. И после этого я сохраняю эти данные на карте (ключ-> код, значение-> описания). Итак, как мне написать graphql? схема..так что я могу получить описания конкретного кода?

XML:

<GetCountriesAvailableResult>
                <CountryCode>
                    <Code>Canada</Code>
                    <Description>Canada</Description>
                </CountryCode>
                <CountryCode>
                    <Code>GreatBritain</Code>
                    <Description>Great Britain and Wales</Description>
                </CountryCode>
                <CountryCode>
                    <Code>IrelandNorthern</Code>
                    <Description>Northern Ireland</Description>
                </CountryCode>
                <CountryCode>
                    <Code>IrelandRepublicOf</Code>
                    <Description>Republic of Ireland</Description>
                </CountryCode>
                <CountryCode>
                    <Code>Scotland</Code>
                    <Description>Scotland</Description>
                </CountryCode>
                <CountryCode>
                    <Code>UnitedStates</Code>
                    <Description>United States</Description>
                </CountryCode>
            </GetCountriesAvailableResult>

// Электропроводка

private RuntimeWiring buildWiring() {
        return RuntimeWiring.newRuntimeWiring()
                .type("Query",typeWriting -> typeWriting
                    .dataFetcher("countryByCode", graphQLDataFetcher.getDataFromWebService())   
                    ).build();   
    }

// получение описания кода

String country_code = dataFetcherFactoryEnvironment.getArgument("code");            

    return map.entrySet()
            .stream()
            .filter(code ->(code.getKey()).equals(country_code))
            .map(Map.Entry::getValue)
            .findFirst()
            .orElse(null);

};

Файл схемы:

type Query {
  countryByCode(code: ID): CountryCode 
}

type CountryCode {
  code: ID
  descriptions: String
}

// Вывод, который я получаю

{
  "data": {
    "countryByCode": {
      "code": null,
      "descriptions": null
    }
  }
}
...