Rest-rajapinnalla pääsee käsiksi ja muokkaamaan Dspacen resursseja, kuten kokoelmia, tietueita ja tiedostoja. Rajapinta tukee myös Dspacen omaa autentikointia, joten Restin kautta käyttäjällä on samat oikeudet resursseihin, kuin käyttöliittymänkin kautta.
Viralliset ohjeet löytyvät täältä. Virallisista ohjeista n Alle päivitetään käytännön esimerkkejä.
Pyyntö osoitteeseen POST /rest/login, json payload:
{"email": "[email protected]", "password": "1234"} |
Esimerkkivastaus:
8a5bd933-e679-4ad3-8b5a-dd2a77941bff |
Vastauksena saatu token pitää sisällyttää rest-dspace-token headeriin, kun tekee lisäys-/poisto-/muokkausoperaatioita.
Restin kautta embargo voidaan määritellä vain Dspacen omalla embargomekanismilla, jonka tarkkuus on vuorokausi. Siihen ei myöskään liity URN-pikarekisteröintiä. |
Luo item: (rest osoite: POST /rest/collections/1/items) headerit:
rest-dspace-token: 8a5bd933-e679-4ad3-8b5a-dd2a77941bff Accept: application/json |
json payload:
{"name": "EmbargoTesti", "metadata": [ {"key": "dc.title", "value": "EmbargoTesti"}, {"key": "dc.embargo.terms", "value": "2017-10-19"} ]} |
Esimerkkivastaus:
{ "id": 224, "name": "EmbargoTesti", "handle": null, "type": "item", "link": "/rest/items/224", "expand": [ "metadata", "parentCollection", "parentCollectionList", "parentCommunityList", "bitstreams", "all" ], "lastModified": "2017-10-18 14:52:17.299", "parentCollection": null, "parentCollectionList": null, "parentCommunityList": null, "bitstreams": null, "archived": "false", "withdrawn": "false" } |
Luo bitstream: (rest osoite POST /rest/items/{itemId}/bitstreams?name=my_testi4.pdf&description=testitiedosto, jos haluat embargon, niin POST /rest/items/{itemId}/bitstreams?name=my_testi4.pdf&description=testitiedosto&groupId=0&year=2017&month=10&day=19) itemId saadaan edellisen pyynnön json vastauksesta. Tiedoston parametri nimeksi pitää asettaa "file" ja se lähetetään form-datana.
curl --location --request POST 'https://doria.fi/rest/login' --header 'Content-Type: application/json' --data-raw '{"email":"user_email_here","password":"password_here"}' curl --location --request POST 'https://doria.fi/rest/items/ITEM_ID_HERE/bitstreams?name=FILE_NAME_HERE' --header 'rest-dspace-token: TOKEN_HERE --header 'Content-Type: multipart/form-data' -F 'file=@FILE_PATH_HERE' |
import requests url = julkaisuarkiston rest-endpoint tähän, esim. https://www.doria.fi/rest #Kirjaudutaan sisään: r = requests.post(url + '/login', headers=headers, data = '{"email": "' + username + '", "password": "' + password + '"}', verify=False) headers = {"Accept": "application/json'"} #Lisätään token headeriin: headers['rest-dspace-token'] = r.text #Avataan lähetettävä tiedosto: files = {'file': open(filedir + "/" + fname[1:-1], 'rb')} #Lähetetään tiedosto Restillä: response = requests.post(url + '/items/' + item_id_tähän + '/bitstreams?name=' + tiedoston_nimi_tähän + '&description=' + tiedoston_kuvailuteksti_tähän, files=files, headers=headers) |
Esimerkkivastaus:
{ "id": 76, "name": "my_testi4.pdf", "handle": null, "type": "bitstream", "link": "/rest/bitstreams/76", "expand": [ "parent", "policies", "all" ], "bundleName": "ORIGINAL", "description": "testitiedosto", "format": "Adobe PDF", "mimeType": "application/pdf", "sizeBytes": 741609, "parentObject": null, "retrieveLink": "/bitstreams/76/retrieve", "checkSum": { "value": "b2a29cd63a82bc03583d2562b0ac4b3c", "checkSumAlgorithm": "MD5" }, "sequenceId": -1, "policies": null } |
headerit:
rest-dspace-token: 8a5bd933-e679-4ad3-8b5a-dd2a77941bff Accept: application/json |
json payload:
[{ "key": "dc.title", "value": "New Title", "language": "en" }] |