vivo_home/api/rest/{version}/projects
Created by: chenejac
Describe the solution you'd like The endpoints for CRUD operations over projects should be defined by using Dynamic API ontology.
- GET vivo_home/api/rest/{version}/projects
- GET vivo_home/api/rest/{version}/projects/{uri}
- GET vivo_home/api/rest/{version}/projects/{uri}/investigators
- POST vivo_home/api/rest/{version}/projects
- PUT vivo_home/api/rest/{version}/projects/{uri}
- DELETE vivo_home/api/rest/{version}/projects/{uri}
The JSON format for description a project should be supported with the following structure:
{
"uri" : "http://localhost:8080/vivo/individual/n9999",
"type" : "http://vivoweb.org/ontology/core#InternationalProject",
"name" : ["Project name@en_US", "Naziv projekta@rs_Latn_RS"],
"abbreviation" : ["GraspOS@en_US", "GraspON@rs_Latn_RS"],
"grant" :
{
"uri" : "http://localhost:8080/vivo/individual/n1000",
"name" : ["European commission grant number XXX@en_US", "Broj ugovora Evropske komisije@sr_Latn_RS"]
}
}
Additional context
-
Some examples are available at https://github.com/chenejac/Vitro/blob/sprint-dynapi-2022-may-demo/home/src/main/resources/rdf/abox/filegraph/continentAPI.n3 aligned with Dynamic API ontology at that moment. Postman can be used for testing. OpenAPI specification (swagger.yml) can be generated. Demo meeting - https://wiki.lyrasis.org/display/VIVO/2022-07-07+-+Dynamic+API+demo+meeting (video record here - https://drive.google.com/file/d/1hOrB8D3tDiTU6TuvnT6HJ1JcclOJp3xm/view?usp=sharing)
-
The another useful resource might be n3 files for reporting available at https://github.com/vivo-project/Vitro/tree/dynapi/home/src/main/resources/rdf/dynapiAbox/everytime