Итак, у меня есть данные 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
}
}
}