This repository hosts a Spring Boot based ReSTful service implementation for listing genome sequencing and variation study projects at EMBL. The service allows fetching information by project id alongwith searching projects on taxonomy common name.
It uses an volatile in-mem H2 database. The data is lost on application shutdown. It is automatically loaded back on application startup from data.sql file. The database implementation could be changed if desired with no change in code.
- Support for listing project by Id
- Support for listing of all projects
- Support for case-Insensitive filtering on taxonomy common name
- Support for sorting of results on multiple output attributes with the default order
- Support for pagination of output
- Support for defining output page size
The OpenAPI documentation can be accessed at this link.
Method | URI | Query params | Response Codes |
---|---|---|---|
GET | /api/1.0/projects |
|
|
GET | /api/1.0/projects/{projectId} | None |
|
- List project with id 'PRJEB629'
- List all projects
- Filter and list projects matching a taxonomy
- Filter and list single page of projects
- Filter and list single page of projects with custom page size
- Filter and list single page of projects with custom page size sorted on a single attribute
- Filter and list single page of projects with custom page size sorted on a multiple attributes
- Spring Data JPA - For JPA implementation
- Spring Web - For building RESTful interface using Spring MVC
- springdoc-openapi - For OpenApi document generation
- Lombok - For auto-generation of code
- specification-arg-resolver - An alternative API for filtering data with Spring MVC and Spring Data JPA