【问题标题】:API workflow to get data as a graph以图形形式获取数据的 API 工作流程
【发布时间】:2020-08-31 09:34:36
【问题描述】:

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

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

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

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

【问题讨论】:

标签: neo4j graph-algorithm


【解决方案1】:

假设图中的标签是 :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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2018-10-20
    相关资源
    最近更新 更多