我正在嘗試使用 Api Platform 通過 XML 創建子資源。
當我通過物體上的注釋定義子資源時,一切都按預期作業:
物體/SocialProfile/SocialProfile.php
/**
* @ApiSubresource()
*
* @ORM\OneToMany(
* targetEntity="SoapSyliusSocialPlugin\Entity\Follow\Follow",
* mappedBy="follower",
* cascade={ "persist", "remove" }
* )
*/
protected $following;
一切都按預期作業,然后我可以通過以下路徑訪問子資源:
/api/v2/social-profiles/35471/followings
但是當我嘗試通過 .xml 定義此路由/端點時,如下所示:
資源/config/api_resources/SocialProfile.xml
<?xml version="1.0" ?>
<resources xmlns="https://api-platform.com/schema/metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata https://api-platform.com/schema/metadata/metadata-2.0.xsd"
>
<resource class="SoapSyliusSocialPlugin\Entity\SocialProfile\SocialProfile" shortName="SocialProfile">
<attribute name="validation_groups">sylius</attribute>
<subresourceOperations>
<subresourceOperation name="api_social_profiles_followings_get_subresource">
<attribute name="method">GET</attribute>
</subresourceOperation>
</subresourceOperations>
<property name="following" writable="false" readable="true">
<subresource resourceClass="SoapSyliusSocialPlugin\Entity\Follow\Follow" />
</property>
</resource>
</resources>
我得到一個:
404 找不到路由
我已經SocialProfile.xml用 a測驗了我的檔案,itemOperation一切都按預期作業。
我已將 Resources/config/api_resources/SocialProfile.xml 更新為如下所示,但我仍然收到
404 找不到路由
<?xml version="1.0" ?>
<resources xmlns="https://api-platform.com/schema/metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata https://api-platform.com/schema/metadata/metadata-2.0.xsd"
>
<resource class="SoapSyliusSocialPlugin\Entity\SocialProfile\SocialProfile" shortName="SocialProfile">
<attribute name="validation_groups">sylius</attribute>
<itemOperations></itemOperations>
<property name="following" writable="false" readable="true">
<subresource resourceClass="SoapSyliusSocialPlugin\Entity\Follow\Follow" collection="true"/>
</property>
</resource>
</resources>
uj5u.com熱心網友回復:
持有子資源的物體的配置(SocialProfile在本例中為 )。
<?xml version="1.0" ?>
<resources xmlns="https://api-platform.com/schema/metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata https://api-platform.com/schema/metadata/metadata-2.0.xsd"
>
<resource class="SoapSyliusSocialPlugin\Entity\SocialProfile\SocialProfile" shortName="SocialProfile">
<attribute name="validation_groups">sylius</attribute>
<property name="following" writable="false" readable="true">
<subresource resourceClass="SoapSyliusSocialPlugin\Entity\Follow\Follow" />
</property>
</resource>
</resources>
要為子資源配置規范化組之類的東西,您可以在關系的另一端進行:
<?xml version="1.0" ?>
<resources xmlns="https://api-platform.com/schema/metadata"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata https://api-platform.com/schema/metadata/metadata-2.0.xsd"
>
<resource class="SoapSyliusSocialPlugin\Entity\Follow\Follow" shortName="Follow">
<subresourceOperations>
<subresourceOperation name="api_social_profiles_followings_get_subresource">
<attribute name="method">GET</attribute>
</subresourceOperation>
</subresourceOperations>
</resource>
</resources>
試試這個。我以這種方式進行了一些設定并且可以正常作業。如果上面有問題,應該是因為某些內容與您的類/資源名稱不完全匹配,但您應該能夠對其進行調整以修復它。
請注意,在您問題的第二個配置版本中,您洗掉了所有itemOperations. 您至少應該有基本的get專案操作,以便庫能夠構建 IRI。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/408782.html
標籤:
上一篇:登錄授權問題,不通過token
下一篇:PHP-LDAP修改密碼
