GSoC phase 1
Project Details:
At HydraEcosystem we are working on hydrus a server which uses Hydra(http://www.hydra-cg.com) Specification for creation and documentation of its APIs.
The primary goal of my GSoC project is to make hydrus compatible with new developments made at Hydra.
Community Bonding Period:
During community bonding period I was having my end semester exams so there was not much scope for designing or coding. It didn’t cost me much as I had written a detailed design/implementation guideline document in my proposal. During the final days of the community bonding period we finalized that we would prioritize implementation of features documented at Hydra. So following that I decided I will work on pagination and searching feature in the first phase.
Week 1:
As mentioned above I started my coding period with implementation of pagination functionality. It involved understanding Hydra:PartialCollectionView and how it can be utilized to provide views over a single collection to implement pagination. You can find my work here:
https://github.com/HTTP-APIs/hydrus/pull/391
Week 2:
In week 2 I decide to work on some old pending issues.
For that I made two PRs closing two old tests related issues, which basically improved testing. They are listed below.
Adding tests for nested objects: https://github.com/HTTP-APIs/hydrus/pull/399
Extending collection test to validate member item: https://github.com/HTTP-APIs/hydrus/pull/398
Besides that we had some discussion about changing response message structure : https://github.com/HTTP-APIs/hydrus/issues/392
Week 3:
I was supposed to start working on the searching feature by the third week but following what we had discussed about the response structure issue, I made first adjustment to my proposal timeline and started working on implementation of Hydra:Status and Hydra:Error. To do so I had to add two new classes at hydra_python_core for Hydra:Status and Hydra:Error(1). Then I used them at hydrus to create response body(2).
Besides this I stated working on the searching feature and added IriTemplate related classes to hydra_python_core.
Week 4:
I started week 4 by writing some code for creating IriTemplate for collections. Then it was time to write code for actual searching, I wrote a helper function to assist that and it worked like charm until I tested pagination over search results. I realized a hard way that I had not considered this important scenario while sketching my proposal. I resolved this and started working on providing searching over properties of nested objects. You can find the PR involving this all changes here: https://github.com/HTTP-APIs/hydrus/pull/403
Way ahead:
Now I am looking forward to get searching feature reviewed and merged. Finishing my work on Hydra:IriTemplate will also involve resolving a couple of issues which directly depend on it. Then I will be ready to start working on creation of dynamic endpoints. More about that in the next post.
Good bye till then.