[英]API Platform - GraphQL - how to query for a Calculated Field?
我们需要使用计算字段(相当于 JMSSerializer 的 @VirtualProperty 用于 API 平台),当我们以老式方式与后端交互时,一切都很好。 但是,我们无法弄清楚如何在 GraphQL 端点上查询此计算字段。 例如:
/**
* Undocumented function.
*
* @Serializer\VirtualProperty()
* @Groups({"read"})
*/
public function getSlug()
{
return $this->name.$this->description;
}
常规查询:
curl -X GET "http://127.0.0.1:8000/platform/api/properties?page=1" -H "accept: application/ld+json"...
常规结果:
{
"@context": "/platform/api/contexts/Property",
"@id": "/platform/api/properties",
"@type": "hydra:Collection",
"hydra:member": [
{
"@id": "/platform/api/properties/1",
"@type": "Property",
"area": "0.00",
"bathroomCount": 2,
"bedroomCount": 2,
"floorCount": 2,
"description": "bar",
"name": "foo",
"slug": "foobar" // The calculated property
},...
GraphQL 查询:
{
properties {
edges {
node {
slug
}
}
}
}
GraphQL 结果:
{
"errors": [
{
"message": "Cannot query field \"slug\" on type \"Property\".",
"extensions": {
"category": "graphql"
},
"locations": [
{
"line": 5,
"column": 9
}
]
}
]
}
谢谢。
看来这是缓存的问题,特别是 redis 注释缓存。 如果遇到此类问题,请确保清除所有缓存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.