← Powrót

Zasilanie ORPPD z zastosowaniem REST API

Dokumentacja

Scenariusz zasilania za pomocą API REST

  1. Założenie konta oraz nadanie ról. Użytkownik odpowiedzialny za masowe zasilanie ORPPD musi posiadać konto w systemie POLON. Konto musi mieć uprawnienie INST_ORPD_IMPORTER_ADM.
  2. Przygotowanie danych do przesłania . Dane powinny być zgodne ze specyfikacją umieszczoną na stronie Specyfikacja techniczna masowego zasilania ORPPD
  3. Użycie usługi REST. Użytkownik musi użyć interfejsu (API udostępnione przez ORPPD) Representational State Transfer (REST) i wykonać operację PUT do ORPPD.

Konstrukcja żądania API

Adres usługi https://polon.nauka.gov.pl/orpd/institutions/{institutionCode}/theses/{thesisExternalNumber}

gdzie:

  • institutionCode - kod jednostki podstawowej, do której należy praca dyplomowa. Kod dla wydziału będzie składała się z dwóch członów kodu uczelni i kodu wydziału np.: UW/14000. Kod jednostki jest dostępny w systemie POLON w podglądzie instytucji.
  • thesisExternalNumber - unikalny numer pracy dyplomowej w uczelnianym systemie APD.

Metoda: PUT

Uwierzytelnianie/ Autoryzacja: HTTP Basic

w nagłówku http Authorization należy wysłać:

– username – kod instytucji;

– password – hasło dla instytucji, do której przypisana jest praca albo nadrzędnej.

Request body: zip

– plik thesisMetadata.xml - z metadanymi pracy;

– plik z treścią pracy (np. pdf, docx, png).

Przykłady wywołania usługi

Przykład wywołania i odpowiedzi usługi /institutions/{topCode}/{subCode}/theses/{thesisExternalId}

Żądanie

PUT /orpd/institutions/SWPWP/WNS%239/theses/1004
Content-Type: application/zip
Authorization: Basic U1dQV1AvV05TIzk6RjN1MkFWTFNQZk5D
User-Agent: PostmanRuntime/7.6.0
Host: orpd-test-app:8080

Odpowiedź serwera po poprawnym zdeponowaniu pracy

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:depositResponse xmlns:ns2="urn:polon:orpd:deposit:2_0_0">
    <status>OK</status>
    <message>Praca została poprawnie zdeponowana: /institutions/SWPWP/WNS#9/theses/1004</message>
</ns2:depositResponse>

Przykład wywołania i odpowiedzi usługi /institutions/{topCode}/theses/{thesisExternalId}

Żądanie

PUT /orpd/institutions/SWPWP/theses/1000
Content-Type: application/zip
Authorization: Basic U1dQV1A6WWs1REFRbHdYcnR1
Host: orpd-test-app:8080

Odpowiedź serwera po poprawnym zdeponowaniu pracy

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:depositResponse xmlns:ns2="urn:polon:orpd:deposit:2_0_0">
    <status>OK</status>
    <message>Praca została poprawnie zdeponowana: /institutions/SWPWP/theses/1000</message>
</ns2:depositResponse>

Przebieg procesu zasilania

  1. APD: Przygotowanie pliku thesisMetadata.xml z metadanymi pracy i plików z treścią pracy.
  2. APD: Utworzenie pliku zip.
  3. APD: Wysłanie zip do ORPD.
  4. ORPPD: Sprawdzenie przez ORPD poprawności przesłanych danych.
  5. ORPPD: Zapisanie danych w bazie danych.

Podstawowe walidacje:

  1. Sprawdzenie poprawności: username (kod instytucji) i password z ORPPD.
  2. Sprawdzenie czy plik zip zawiera plik o nazwie thesisMetadata.xml, pliki z pracą, zip nie zawiera podkatalogów.
  3. Sprawdzenie kompletności metadanych w pliku thesisMetadata.xml:
    • tytuł pracy dyplomowej <title>;
    • autor pracy <author> co najmniej jeden;
    • promotor pracy <supervisor> co najmniej jeden;
    • recenzent pracy <reviewer> co najmniej jeden;
    • forma studiów <formOfStudy>, Id kierunku studiów <courseId> lub Nazwa kierunku studiów <courseName> (brak id dopuszczalny jeżeli <startDate> wcześniejsza od 01.10.2011 r;
    • dla każdego autora: Imę <Imie>, Nazwisko <nazwisko>, Data rozpoczęcia studiów <startDate>, Data obrony <defenceDate>