Как создать динамическое значение пути для ответа на запрос graphql с помощью GraphQL.NET? - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть REST API ( API / Tax / V1 / страны ) со следующим ответом.Ниже свойства pngimagePath и svgimagePath указывают на конечные точки типа изображения ( api / tax / v1 / country / Country1 / {FlagPNG или FlagSVG} )

Пути генерируются динамически вв этом случае.

{
  "countries": [
    {
      "pngimagePath": "https://test.com/api/tax/v1/country/Country1/4/image/FlagPNG",
      "svgimagePath": "https://test.com/api/tax/v1/country/Country1/405/image/FlagSVG",
      "displayName": "Country1",
      "displayNameShort": "Country1",
      "providerName": "Testing",
      "providerTerms": null,
      "uuid": "1",
      "name": "Country1",
      "path": "Country1",
      "completeResponse": true
    },
    {
      "pngimagePath": "https://test.com/api/tax/v1/country/Country2/5/image/FlagPNG",
      "svgimagePath": "https://test.com/api/tax/v1/country/Country2/406/image/FlagSVG",
      "displayName": "Country2",
      "displayNameShort": "Country2",
      "providerName": "Testing one",
      "providerTerms": null,
      "uuid": "2",
      "name": "Country2",
      "path": "Country2",
      "completeResponse": true
    }
  ],  
  "authorised": false,
  "userMessage": ""
}



 // Code to generate the image path
var apiPath = _appSettings.Value.ApiPath + "country/";
result.Countries.AddRange(rawCountries.Select(country  =>  new DTO.CountryDTO {
PNGImagePath =  $"{apiPath}{Helper.ReplaceChars(country.DefaultDisplayName)}/{country.PngImageId}/image/{country.PngImageType}" ,  SVGImagePath =  $"{apiPath}{Helper.ReplaceChars(country.DefaultDisplayName)}/{country.SvgImageId}/image/{country.SvgImageType}" ,  } ) ) ; 

Я хочу сгенерировать путь к изображению с помощью GraphQL.NET.

Может кто-нибудь помочь мне узнать, как реализовать эту функцию

1 Ответ

0 голосов
/ 28 ноября 2018

Для pngimagePath, который генерируется на основе country, вы можете определить новое поле с помощью resolve, чтобы сгенерировать значение для pngimagePath.

    public class PlayerType : ObjectGraphType<Player>
{
    public PlayerType(ISkaterStatisticRepository skaterStatisticRepository)
    {
        Field(x => x.Id);
        Field(x => x.Name, true);
        Field(x => x.BirthPlace);
        Field(x => x.Height);
        Field(x => x.WeightLbs);


        Field<StringGraphType>("pngimagePath", resolve: context => $"{context.Source.Name} {context.Source.BirthDate} {context.Source.BirthPlace}");
    }
}
...