API工作流以图表形式获取数据

问题描述 投票:0回答:1

我正在neo4J中对图形建模,以存储API系统的所有关系/查询。因此,例如,API API 1-GET:/api/employee/{email}接收电子邮件并返回id。第二个APIAPI 2GET:/api/employee/salary/{e_id}EmployeeId并返回Salary。图形表示看起来像这样。enter image description here

例如,给出一封电子邮件,我想编写一个查询来找出可以从该系统中提取的所有内容。对于上面的图形,输出将类似于:

API 1 - input - email
API 1 - output - employee_id
API 2 - input - employee_id
API 2 - output - Salary

如果有更好/更短的路径可以输出特定的数据项,则算法需要提出建议。我相信我需要的是单源最短路径算法的一种变体,但是我不确定如何进行。如果有更好的方法对此图建模以提高查询性能,请让我知道

neo4j graph-algorithm
1个回答
0
投票

假设图形中的标签为:Api:Parameter,并且节点均具有name属性,则此Cypher将返回所有API以及它们的输入和输出参数列表:

MATCH (a:Api)
WITH a AS apis
MATCH (apis)-[:INPUT]->(ip:Parameter)
WITH apis, COLLECT(ip.name) AS inputParams
MATCH (apis)-[:OUTPUT]->(op:Parameter)
WITH apis, inputParams, COLLECT(op.name) AS outputParams
RETURN apis.name as apiName, inputParams, outputParams
© www.soinside.com 2019 - 2024. All rights reserved.