ProcedureManagementApi

所有URI均相对于{INTERACTIVE_ADMIN_ENDPOINT}

方法

HTTP请求

描述

CreateProcedure

POST /v1/graph/{graph_id}/procedure

在指定图上创建一个存储过程

DeleteProcedure

DELETE /v1/graph/{graph_id}/procedure/{procedure_id}

删除指定图上的存储过程

GetProcedure

GET /v1/graph/{graph_id}/procedure/{procedure_id}

获取指定图上某个存储过程的元数据

ListProcedures

GET /v1/graph/{graph_id}/procedure

列出绑定到指定图的所有存储过程

UpdateProcedure

PUT /v1/graph/{graph_id}/procedure/{procedure_id}

更新指定图的元数据

创建存储过程

结果 createProcedure(graphId, createProcedureRequest)

在指定ID的图上创建一个新的存储过程。 支持注册cypherc++两种类型的存储过程。 详情请参阅CppStoredProcedureCypherStoredProcedure

示例

// 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

CreateProcedureRequest

返回类型

结果<CreateProcedureResponse>

授权

无需授权

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

返回类型

结果<GetProcedureResponse>

授权

无需授权

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

UpdateProcedureRequest

[可选]

返回类型

结果<String>

授权

无需授权

HTTP请求头

  • 内容类型: application/json

  • Accept: application/json

HTTP响应详情

状态码

描述

响应头

200

操作成功

-

400

错误请求

-

404

未找到

-

500

内部错误

-