代码 API 依赖
显示 API 依赖关系的 Neo4j 图
简介
应用程序开发人员依靠公共 API 来使他们的代码正常运行。此模型旨在展示如何将公共 API 的更新标记为影响代码。通过在自定义客户端内部代码和它们依赖的 API 方法之间定义这些关系,您可以快速查看哪些 API 更改可能会影响现有代码。
加载的示例数据
// Create code clients
CREATE (Email:Client {id:'1', description:'email client', repo:'localgit:emailClient'})
CREATE (Text:Client {id:'2', description:'sms client', repo:'localgit:textClient'})
CREATE (Invoice:Client {id:'3', description:'produce invoice client', repo:'localgit:invoiceClient'})
// Create Public Api methods
CREATE (MailCh:Vendor {id:'11', name:'mailCh', apiDoc:'https://github.com/mailch/api'})
CREATE (Twil:Vendor {id:'12', name:'twil', apiDoc:'https://github.com/twil/api'})
CREATE (Invoiceapi:Vendor {id:'13', name:'mailCh', apiDoc:'https://github.com/Invoiceapi/api'})
// Create consumes relationship
CREATE (Email)-[:CONSUMES {method:'getServer', version:'1.7', status:'Changed'}]->(MailCh)
CREATE (Text)-[:CONSUMES {method:'getSmsCarrier', version:'3.2', status:'Removed'}]->(Twil)
CREATE (Email)-[:CONSUMES {method:'getEmailServer', version:'1.7', status:'Removed'}]->(MailCh)
CREATE (Invoice)-[:CONSUMES {method:'getInvoiceNumer', version:'2.3', status:'Same'}]->(Invoiceapi)
RETURN *
识别依赖关系
我们收集所有依赖项
MATCH (client:Client)-[r:CONSUMES]->(vendor)
RETURN client.description AS `Client Description`, client.repo AS `Code Location`, r.method AS `API Method`, r.status AS `Details`
ORDER BY `Details` DESC
识别需要移除的更改
查找需要代码更改的 API 更改。您依赖的 API 方法被移除将需要您注意修复。
MATCH (client:Client)-[r:CONSUMES]->(vendor)
WHERE r.status = "Removed"
RETURN client.description AS `Client Description`, client.repo AS `Code Location To Update`, r.method AS `API Method`, r.status AS `Details`, r.version AS `VERSION`
ORDER BY `Details` DESC
识别需要测试的更改
查找应触发测试的 API 更改。现有方法的更改可能会导致静默问题→代码可能正常运行,但结果可能与之前不同。
MATCH (client:Client)-[r:CONSUMES]->(vendor)
WHERE r.status = "Changed"
RETURN client.description AS `Client Description`, client.repo AS `Code Location`, r.method AS `API Method`, r.status AS `Details`, r.version AS `VERSION`
ORDER BY `Details` DESC
此页面是否有帮助?