Symfony 具有多个数据源的Api平台,如何使用条令或ElasticSearch映射实体
Api平台:v2.5.6,Symfony:v4.4.11 我正在构建一个包含多个数据源的API。现在,一个来自Postgres,另一个来自ElasticSearch 例如,我有一个来自Symfony 具有多个数据源的Api平台,如何使用条令或ElasticSearch映射实体,symfony,api-platform.com,Symfony,Api Platform.com,Api平台:v2.5.6,Symfony:v4.4.11 我正在构建一个包含多个数据源的API。现在,一个来自Postgres,另一个来自ElasticSearch 例如,我有一个来自postgres的Organization实体和一个来自ElasticSearch的Stats实体 如果无法访问ElasticSearch服务,我希望/organizations路线正常,因为他们不需要ElasticSearch来工作 现在我得到了“在集群中找不到活动节点”,因为它试图与ElasticSearch的
postgres
的Organization
实体和一个来自ElasticSearch的Stats
实体
如果无法访问ElasticSearch服务,我希望/organizations
路线正常,因为他们不需要ElasticSearch来工作
现在我得到了“在集群中找不到活动节点”
,因为它试图与ElasticSearch的“/\u cat/index/organization”
路径通信
这让我陷入了一个问题,如果它每次都试图与ElasticSearch和Postgres进行沟通,无论实体是什么
例如,我可以说一个实体映射到一个数据源而不是另一个数据源吗
或者至少设定一个优先级
我的app/config/packages/api_platform.yaml
api_platform:
allow_plain_identifiers: true
title: HeyAPI Documentation
version: 2.0.0
formats:
jsonld: ['application/ld+json']
json: ['application/json']
graphql: ['application/graphql'] #https://graphql.org/learn/serving-over-http/#post-request
mapping:
paths:
- '%kernel.project_dir%/config/api_platform'
patch_formats:
json: ['application/merge-patch+json']
elasticsearch:
hosts: ['%env(ELASTICSEARCH_URL)%']
swagger:
versions: [3]
api_keys:
Bearer:
name: Authorization
type: header
你能分享你的api/config/packages/api_platform.yaml吗?我看这个链接:也许我错了,但是这个链接:你可以只包含弹性搜索的实体。@GaryHoubre不幸的是,这不是定义字段的映射方式。如果我只把实体放在这里(而不是放在
mapping.path
),它就不会被ApiPlatform使用。如果我把两者都放进去,我的行为与所描述的一样。@BastienSander你找到了让条令实体和ES一起工作的解决方案了吗?它工作得很好,但我找不到一种方法来区分哪个是优先权。在这里您可以找到一些帮助: