ProcedureManagementApi¶
所有URI均相对于{INTERACTIVE_ADMIN_ENDPOINT}
方法 |
HTTP请求 |
描述 |
|---|---|---|
POST /v1/graph/{graph_id}/procedure |
在指定图上创建一个存储过程 |
|
DELETE /v1/graph/{graph_id}/procedure/{procedure_id} |
删除指定图上的存储过程 |
|
GET /v1/graph/{graph_id}/procedure/{procedure_id} |
获取指定图上某个存储过程的元数据 |
|
GET /v1/graph/{graph_id}/procedure |
列出绑定到指定图的所有存储过程 |
|
PUT /v1/graph/{graph_id}/procedure/{procedure_id} |
更新指定图的元数据 |
创建存储过程¶
结果
createProcedure(graphId, createProcedureRequest)
在指定ID的图上创建一个新的存储过程。
支持注册cypher和c++两种类型的存储过程。
详情请参阅CppStoredProcedure和CypherStoredProcedure。
示例¶
// Import classes:
import com.alibaba.graphscope.interactive.client.Driver;
import com.alibaba.graphscope.interactive.client.Session;
import com.alibaba.graphscope.interactive.client.common.Result;
import com.alibaba.graphscope.interactive.models.CreateProcedureRequest;
import com.alibaba.graphscope.interactive.models.CreateProcedureResponse;
public class Example {
public static void main(String[] args) {
Driver driver = Driver.connect();
Session session = driver.session();
String graphId = "1";
CreateProcedureRequest procedure =
new CreateProcedureRequest()
.name("testProcedure")
.description("a simple test procedure")
.query("MATCH(p:person) RETURN COUNT(p);")
.type(CreateProcedureRequest.TypeEnum.CYPHER);
Result<CreateProcedureResponse> resp = session.createProcedure(graphId, procedure);
if (resp.isOk()) {
System.out.println("create procedure success");
} else {
throw new RuntimeException("create procedure failed: " + resp.getStatusMessage());
}
}
}
参数¶
名称 |
类型 |
描述 |
备注 |
|---|---|---|---|
graphId |
String |
||
createProcedureRequest |
返回类型¶
HTTP请求头¶
内容类型: application/json
Accept: application/json
HTTP响应详情¶
状态码 |
描述 |
响应头 |
|---|---|---|
200 |
操作成功 |
- |
400 |
错误请求 |
- |
404 |
未找到 |
- |
500 |
内部错误 |
- |
DeleteProcedure¶
Result
deleteProcedure(graphId, procedureId)
根据ID删除图上的一个存储过程
示例¶
// Import classes:
import com.alibaba.graphscope.interactive.client.Driver;
import com.alibaba.graphscope.interactive.client.Session;
import com.alibaba.graphscope.interactive.client.common.Result;
public class Example {
public static void main(String[] args) {
Driver driver = Driver.connect();
Session session = driver.session();
String graphId = "1";
//delete procedure
Result<String> deleteRes = session.deleteProcedure(graphId, "testProcedure");
if (!deleteRes.isOk()) {
System.out.println("Failed to delete procedure: " + deleteRes.getStatusMessage());
} else {
System.out.println("Deleted procedure: " + deleteRes.getValue());
}
}
}
参数¶
名称 |
类型 |
描述 |
备注 |
|---|---|---|---|
graphId |
String |
||
procedureId |
String |
返回类型¶
结果<String>
授权¶
无需授权
HTTP请求头¶
Content-Type: 未定义
Accept: application/json
HTTP响应详情¶
状态码 |
描述 |
响应头 |
|---|---|---|
200 |
操作成功 |
- |
404 |
未找到 |
- |
获取过程¶
GetProcedureResponse getProcedure(graphId, procedureId)
通过ID获取一个过程
示例¶
// Import classes:
import com.alibaba.graphscope.interactive.client.Driver;
import com.alibaba.graphscope.interactive.client.Session;
import com.alibaba.graphscope.interactive.client.common.Result;
import com.alibaba.graphscope.interactive.models.GetProcedureResponse;
public class Example {
public static void main(String[] args) {
Driver driver = Driver.connect();
Session session = driver.session();
String graphId = "1";
Result<GetProcedureResponse> getRes = session.getProcedure(graphId, "testProcedure");
if (!getRes.isOk()) {
System.out.println("Failed to get procedure: " + getRes.getStatusMessage());
} else {
System.out.println("Got procedure: " + getRes.getValue());
}
}
}
参数¶
名称 |
类型 |
描述 |
备注 |
|---|---|---|---|
graphId |
String |
||
procedureId |
String |
返回类型¶
授权¶
无需授权
HTTP请求头¶
Content-Type: 未定义
Accept: application/json
HTTP响应详情¶
状态码 |
描述 |
响应头 |
|---|---|---|
200 |
操作成功 |
- |
404 |
未找到 |
- |
列出存储过程¶
结果
> listProcedures(graphId)
列出绑定到图的所有存储过程。
示例¶
// Import classes:
import com.alibaba.graphscope.interactive.client.Driver;
import com.alibaba.graphscope.interactive.client.Session;
import com.alibaba.graphscope.interactive.client.common.Result;
import com.alibaba.graphscope.interactive.models.GetProcedureResponse;
import java.util.List;
public class Example {
public static void main(String[] args) {
Driver driver = Driver.connect();
Session session = driver.session();
String graphId = "1";
Result<List<GetProcedureResponse>> listRes = session.listProcedures(graphId);
if (!listRes.isOk()) {
System.out.println("Failed to list procedures: " + listRes.getStatusMessage());
} else {
System.out.println("Listed procedures: " + listRes.getValue());
}
}
}
参数¶
名称 |
类型 |
描述 |
备注 |
|---|---|---|---|
graphId |
String |
返回类型¶
结果]<列表<GetProcedureResponse>>
授权¶
无需授权
HTTP请求头¶
Content-Type: 未定义
Accept: application/json
HTTP响应详情¶
状态码 |
描述 |
响应头 |
|---|---|---|
200 |
操作成功 |
- |
404 |
未找到 |
- |
更新过程¶
字符串更新过程(graphId, procedureId, updateProcedureRequest)
更新存储过程的元数据,例如描述信息。存储过程的查询或实现内容无法更新。
示例¶
// Import classes:
import com.alibaba.graphscope.interactive.client.Driver;
import com.alibaba.graphscope.interactive.client.Session;
import com.alibaba.graphscope.interactive.client.common.Result;
import com.alibaba.graphscope.interactive.models.UpdateProcedureRequest;
import java.util.List;
public class Example {
public static void main(String[] args) {
Driver driver = Driver.connect();
Session session = driver.session();
String graphId = "1";
String procedureId = "testProcedure";
UpdateProcedureRequest updateProcedureRequest = new UpdateProcedureRequest();
updateProcedureRequest.setDescription("a simple test procedure");
Result<String> updateRes = session.updateProcedure(graphId, procedureId, updateProcedureRequest);
if (!updateRes.isOk()) {
System.out.println("Failed to update procedure: " + updateRes.getStatusMessage());
} else {
System.out.println("Updated procedure: " + updateRes.getValue());
}
}
}
参数¶
名称 |
类型 |
描述 |
备注 |
|---|---|---|---|
graphId |
String |
||
procedureId |
String |
||
updateProcedureRequest |
[可选] |
返回类型¶
结果<String>
授权¶
无需授权
HTTP请求头¶
内容类型: application/json
Accept: application/json
HTTP响应详情¶
状态码 |
描述 |
响应头 |
|---|---|---|
200 |
操作成功 |
- |
400 |
错误请求 |
- |
404 |
未找到 |
- |
500 |
内部错误 |
- |