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