vivo_home/api/rest/{version}/publications
Created by: chenejac
Describe the solution you'd like The endpoints for CRUD operations over publications should be defined by using Dynamic API ontology.
- GET vivo_home/api/rest/{version}/publications
- GET vivo_home/api/rest/{version}/publications/{uri}
- GET vivo_home/api/rest/{version}/publications/{uri}/subpublications
- GET vivo_home/api/rest/{version}/persons/{uri}/publications
- GET vivo_home/api/rest/{version}/organizationUnits/{uri}/publications
- POST vivo_home/api/rest/{version}/publications
- PUT vivo_home/api/rest/{version}/publications/{uri}
- DELETE vivo_home/api/rest/{version}/publications/{uri}
The JSON format for description a publication should be supported with the following structure:
{
"uri" : "http://localhost:8080/vivo/individual/n7979",
"type" : "http://vivoweb.org/ontology/core#Chapter",
"title" : ["Twitter as Rhetoric@en_US", "Twitter kao retorika@sr_Latn_RS"],
"startPage" : 245,
"endPage" : 249, # in some cases there might be also volume, issue, articleNumber
"publicationDate" : 2013, #sometimes exact date including month and day
"publisher" : {
"uri" : "http://localhost:8080/vivo/individual/n6795",
"name" : ["University of California Press@en_US", "Izdavaštvo Kalifornijskog univerziteta@sr_Latn_RS"]
}
"publicationVenue" : {
"uri" : "http://localhost:8080/vivo/individual/n5987",
"title" : ["Social Media as Discourse@en_US", "Društveni mediji kao diskurs@sr_Latn_RS"]
}
"authors" : [
{
"uri" : "http://localhost:8080/vivo/individual/n6870",
"name" : "Peters, Jasper, I",
"affiliation" : [
{
"uri" : "http://localhost:8080/vivo/individual/n4762",
"name" : ["Harvard University@en_US", "Harvard univerzitet@sr_Latn_RS"]
},
{
"uri" : "http://localhost:8080/vivo/individual/n489",
"name" : ["California Institute of Technology@en_US", "Kalifornijski tehnički institut@sr_Latn_RS"]
}
]
},
{
"uri" : "http://localhost:8080/vivo/individual/n733",
"name" : "Bogart, Andrew",
"affiliation" : [
{
"uri" : "http://localhost:8080/vivo/individual/n4762",
"name" : ["Harvard University@en_US", "Harvard univerzitet@sr_Latn_RS"]
},
{
"uri" : "http://localhost:8080/vivo/individual/n3910",
"name" : ["College of Arts and Humanities@en_US", "Fakultet umetnosti i drustvenih nauka@sr_Latn_RS"]
}
]
}
]
"internalID" : "n7979",
"DOI" : "10.1108/EL-05-2016-0104",
"SCOPUSeID" : "2-s2.0-85047384941"
}
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