Affects Version/s: None
Fix Version/s: None
Graph Query is a combination of queries of each step.
1. you can take a vertex,
2. then bring the edge back with that vertex,
3. get the vertex from the edge,
4. and bring the edge from that vertex.
The query that is being provided now is not tied to each of the above steps, but is tightly coupled throughout the query.
Since functions such as filter, transform(group_by, merge), and postprocess(conversion to json/xml) are tightly coupled to the entire query function,
it is difficult to test each function separately.
To solve this problem,
1. each step is created as an independent function and
2. the function of assembling each step is separated separately.
Each step is separated as above, the following functions can be implemented without additional code.
ex) In the case of deleteAll, fetch each edge and make delete request again.
1. For query efficiency, each step implements the function to return Observable.
2. Use Observable(RxScala)'s flatMap to connect each step.
Below is the pseudocode.
1. Bringing the edges from the vertex, collect only edges whose score is 0.5 and serialize them to Json
What to think about.
1. The ability to link each step is subject to Observable.
- This makes it impossible to draw the connection graph of the Step instead of making the function easier to implement.
|Refactor EdgeFetcher, EdgeMutator to extend `RxStep`.||To Do||Unassigned|