Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Public Interfaces(optional)

TODO: translate GRPC gRPC interface in RESTful API.

(see https://github.com/milvus-io/milvus/blob/master/internal/proto/milvus.proto)

According to gRPC, the HTTP resource names can be:

  • collections
  • partitions
  • aliases
  • indexes
  • records

Collection APIs: 

Code Block
languagecpp
service MilvusService {
  // (omit api version prefix)
  // POST /collections
  rpc CreateCollection(CreateCollectionRequest) returns (common.Status) {}
  // DELETE /collections/:collectionName
  rpc DropCollection(DropCollectionRequest) returns (common.Status) {}
  // GET /collections/:collectionName
  rpc HasCollection(HasCollectionRequest) returns (BoolResponse) {}
  // PUT /collections/:collectionName/load
  rpc LoadCollection(LoadCollectionRequest) returns (common.Status) {}
  // DELETE /collections/:collectionName/load
  rpc ReleaseCollection(ReleaseCollectionRequest) returns (common.Status) {}
  // GET /collections/:collectionName/schema
  rpc DescribeCollection(DescribeCollectionRequest) returns (DescribeCollectionResponse) {}
  // GET /collections/:collectionName/statistics
  rpc GetCollectionStatistics(GetCollectionStatisticsRequest) returns (GetCollectionStatisticsResponse) {}
  // GET /collections
  rpc ShowCollections(ShowCollectionsRequest) returns (ShowCollectionsResponse) {}
  // ...
}



Design Details(required)

Add a http server on proxy module. 

The HTTP API should be designed by RESTful Principles and should implement all the methods that GRPC gRPC interface supports.

When http server receives a request, it converts the request to corresponding GRPC  gRPC request, and then reuse the GRPC gRPC handling procedure to finish serving the request.

...