首页 > 解决方案 > 如何在我的 api 平台应用程序中使用外部资源

问题描述

我有实现 api 平台的应用程序。此应用程序具有名为 UserSnapshot 的实体。

namespace App\Entity;

/**
 * Class UserSnapshot
 * @package App\Entity
 */
class UserSnapshot
{
    /**
     * @var integer
     */
    protected $id;

    /**
     * Position of user. Information only.
     * @var Position
     */
    protected $position;

我的职位实体在不同的微服务中。我可以使用以下 URL 访问它:

http://127.0.0.1:8002/api/positions

该微服务使用 api-platform 提供数据;现在我想在我的本地应用程序中使用这个外部资源。如何将它实现到我的 UserSnapshot 端点?

如何在我的应用程序中创建位置端点?

标签: phprestapi-platform.com

解决方案


您可以实现自定义 DataProvider以将请求转发到远程微服务。

在此数据提供程序中,您可能希望使用 Guzzle 执行 HTTP 查询,反序列化本地实体中的 JSON 数据,并让 API 平台再次对其进行序列化。

如果您想按原样返回检索到的 JSON 并且不需要解码然后重新编码 JSON-LD,您可以改用自定义操作并跳过反序列化/重新序列化部分。


推荐阅读