如何使用 GraphQL.NET 为 graphql 查询响应生成动态路径值?
How to generate dynamic path value for a graphql query response using GraphQL.NET?
我有 REST API (api/tax/v1/countries),响应如下。在下面,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生成图像路径。
谁能帮我知道如何实现这个功能
对于基于country
生成的pngimagePath
,您可以使用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}");
}
}
我有 REST API (api/tax/v1/countries),响应如下。在下面,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生成图像路径。
谁能帮我知道如何实现这个功能
对于基于country
生成的pngimagePath
,您可以使用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}");
}
}