vivo_home/api/rest/{version}/persons
Created by: chenejac
Describe the solution you'd like The endpoints for CRUD operations over persons should be defined by using Dynamic API ontology.
- GET vivo_home/api/rest/{version}/persons
- GET vivo_home/api/rest/{version}/organizationUnits/{uri}/persons
- GET vivo_home/api/rest/{version}/persons/{uri}
- POST vivo_home/api/rest/{version}/persons
- PUT vivo_home/api/rest/{version}/persons/{uri}
- DELETE vivo_home/api/rest/{version}/persons/{uri}
The JSON format for description a person should be supported with the following structure:
{
"uri" : "http://localhost:8080/vivo/individual/n6870",
"type" : "http://vivoweb.org/ontology/core#FacultyMember",
"firstName" : "Peters",
"lastName" : "Jasper",
"middleName" : "I",
"positions" : [
{
"organizationUnitURI" : "http://localhost:8080/vivo/individual/n4762",
"organizationUnitName" : ["Harvard University@en_US", "Harvard Univerzitet@sr_Latn_RS"],
"positionName" : ["Associate professor@en_US", "Vanredni profesor@sr_Latn_RS"],
"positionType" : "http://vivoweb.org/ontology/core#FacultyPosition",
"startDate" : 2014-05-27,
"endDate" : 2020-05-23
},
{
"organizationUnitURI" : "http://localhost:8080/vivo/individual/n4762",
"organizationUnitName" : ["Harvard University@en_US", "Harvard Univerzitet@sr_Latn_RS"],
"positionName" : ["Full professor@en_US", "Redovni profesor@sr_Latn_RS" ],
"positionType" : "http://vivoweb.org/ontology/core#FacultyPosition",
"startDate" : 2020-05-24
}
]
# "awards" and "researchAreas" should be added as well
"internalID" : "n6870",
"ORCID" : "0000-0002-9942-5521",
"SCOPUSAuthorID" : "35795419600",
"ResearcherID" : "J-4074-2012"
}
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