我有一个正在开发的项目,我在前端使用 React,后端是在 Symfony + api 平台中构建的。 我的问题如下:
API 调用返回的响应格式我不太熟悉。
示例:为与 Country 实体相关的 Town 实体调用
/api/towns/1
会给出
{ name : "New York",
code : "NY",
country : /api/countries/1
}
因此,如果我需要国家/地区的名称或代码,我将不得不再次致电
/api/countries
。
根据我的研究,我可以使用所谓的 vulcain 并添加标题
{ Preload : "/countries" }
,但这不起作用。
我用 axios 和 postman 尝试过,但没有成功。
我还研究了在 Symfony 中的实体定义中添加
#[ApiProperty(push: true)]
,它看起来像这样:
class Country
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[ApiProperty(push: true)]`
但也没有成功
我真的不知道如何解决这个问题,任何帮助将不胜感激
如果您始终需要您的国家/地区名称或代码,您应该避免每次都拨打电话,而是将其添加到您的标准化组#[Groups]
<?php
namespace App\Entity;
use ApiPlatform\Metadata\ApiResource;
use Symfony\Component\Serializer\Annotation\Groups;
#[ApiResource(normalizationContext: ['groups' => ['town']])]
class Town
{
// ...
#[Groups('town')]
public Country $country;
// ...
}
这样你的答案就会直接像这样
{
name : "New York",
code : "NY",
country : {
name: 'United States of America',
code: 'USA'
}
}