Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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. 

DSpace 5.6 REST

Viralliset ohjeet löytyvät täältä. Virallisista ohjeista n Alle päivitetään käytännön esimerkkejä.


DSpace Rest Tokenin Hakeminen

  • Pyyntö osoitteeseen POST /rest/login, json payload:

    Code Block
    languagejs
    {"email": "[email protected]", "password": "1234"}

    Esimerkkivastaus:

    Code Block
    8a5bd933-e679-4ad3-8b5a-dd2a77941bff

    Vastauksena saatu token pitää sisällyttää rest-dspace-token headeriin, kun tekee lisäys-/poisto-/muokkausoperaatioita.

Itemin lisääminen (embargolla tai ilman)

Note

Restin kautta embargo voidaan määritellä vain Dspacen omalla embargomekanismilla, jonka tarkkuus on vuorokausi. Siihen ei myöskään liity URN-pikarekisteröintiä.

...

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.

Code Block
titleCurl-esimerkki tietueen ja tiedoston luonnista
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'



Code Block
titlePython-esimerkki tiedoston lähettämisestä form-datana Requests-moduulin avulla
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/' + iteminitem_tietokantaid_idtähän + '/bitstreams?name=' + tiedoston_nimi_tähän + '&description=' + tiedoston_kuvailuteksti_tähän, files=files, headers=headers)

...

  • Nyt Item on luotu ja bitstream on lisätty.

Itemin metadatan päivittäminen

  • Päivitä item: (rest osoite PUT /rest/items/{item_id}/metadata)
  • headerit:

    Code Block
    rest-dspace-token: 8a5bd933-e679-4ad3-8b5a-dd2a77941bff
    Accept: application/json


  • json payload:

    Code Block
    [{
        "key": "dc.title",
        "value": "New Title",
        "language": "en"
    }]