Interfejs programistyczny aplikacji: Różnice pomiędzy wersjami

Z Otwarty System Antyplagiatowy
Skocz do: nawigacja, szukaj
(Tworzenie zadań i odbieranie raportów)
(Tworzenie zadań i odbieranie raportów)
Linia 21: Linia 21:
 
* documentType  - Typ pracy '''[możliwe pola: licenciate, engineer, master, postgraduate, doctoral]'''
 
* documentType  - Typ pracy '''[możliwe pola: licenciate, engineer, master, postgraduate, doctoral]'''
 
* faculty      - Jednostka podstawowa
 
* faculty      - Jednostka podstawowa
* fieldOfStudy  - Kierunek studiów
+
* fieldOfStudy  - Kierunek studiów '''(w tej chwili OSA nie zapisuje tych informacji)'''
 
* knowledgeArea - Obszar wiedzy
 
* knowledgeArea - Obszar wiedzy
 
* title        - Tytuł pracy
 
* title        - Tytuł pracy

Wersja z 11:03, 16 gru 2015

Otwarty system antyplagiatowy udostępnia dwa interfejsy komunikacji, jeden do wersji lokalnej instalowanej na komputerze uczelni, drugi do Nekst umożliwiający sprawdzanie prac w internecie (korzysta z niego wersja lokalna).

Obydwa interfejsy zostały wykonane w oparciu o REST (Representational State Transfer).


API OSA

Aktualna wersja została opracowana na potrzeby integracji z systemem USOS. Docelowo chcemy ją rozszerzyć by można było się zintegrować z dowolnym oprogramowaniem.

Tworzenie zadań i odbieranie raportów

POST: http://<adres serwera osa>/api/job/create

parametry:

  • reportURL - Adres do przesłania raportu (adres zwrotny)
  • university - Nazwa uniwersytetu
  • polonCode - Kod POL-on uniwersytetu (w tej chwili OSA nie zapisuje tych informacji)
  • languageCode - Kod ISO języka pracy [możliwe pola: pl, en. Parametr tylko informacyjny - nie ma wpływu na wyniki]
  • documentType - Typ pracy [możliwe pola: licenciate, engineer, master, postgraduate, doctoral]
  • faculty - Jednostka podstawowa
  • fieldOfStudy - Kierunek studiów (w tej chwili OSA nie zapisuje tych informacji)
  • knowledgeArea - Obszar wiedzy
  • title - Tytuł pracy
  • author - Autor
  • promoter - Promotor
  • reviewer - Recenzent
  • file - Plik

odpowiedź:

  • status - Status zgłoszenia
  • message - Tekstowy komunikat
  • guid - Identyfikator zgłoszenia

Po wykonanej analizie antyplagiatowej system próbuje odesłać raport na wskazany adres (reportURL) przekazując następujące parametry:

  • id - Identyfikator zgłoszenia (GUID)
  • file - Plik z raportem

oczekując następujących parametrów:

  • status - Status
  • message - Komunikat

Mapowanie kodów obszarów:

  • OB01 -> Obszar nauk humanistycznych
  • OB02 -> Obszar nauk społecznych
  • OB03 -> Obszar nauk ścisłych
  • OB04 -> Obszar nauk przyrodniczych
  • OB05 -> Obszar nauk technicznych
  • OB06 -> Obszar nauk rolniczych, leśnych i weterynaryjnych
  • OB07 -> Obszar nauk medycznych i nauk o zdrowiu oraz nauk o kulturze fizycznej
  • OB08 -> Obszar sztuki

Przykładowe dane przesłane przez API:

title='Motywowanie pracowników -narzędzia motywowania', author='Kowalska1339296, Ewa1339296', promoter='Kowalska1344837, Ewa1344837',
reviewer='Kowalska1335138, Ewa1335138', authorID='Kowalska1339296, Ewa1339296', promoterID='Kowalska1344837, Ewa1344837, 1344837', 
reviewerID='Kowalska1335138, Ewa1335138, 1335138', university='Uniwersytet DEMO', polonCode='UW', faculty='Wydział Zarządzania',
documentType='licenciate', languageCode='pl', knowledgeArea='OB02', reportURL='https://apd.demo.usos.edu.pl/diplomas/osa/report/', file=XXXXX

API Nekst

Serwis REST API znajduje się pod adresem: api.antyplagiat.nekst.pl.

Komunikacja odbywa się za pomocą protokołu HTTP (GET i POST), zaś odpowiedzi zwrotne są mapowane na JSON’a lub XML’a w zależności od parametru nagłówka (HTTP header) Accept: application/json lub Accept: application/xhtml+xml.

Autoryzacja

W celu uzyskania dostępu do API należy pobrać token autoryzacyjny za pomocą poniższej metody:

GET: antyplagiat.nekst.pl/auth/getToken?login={login}

parametry:

  • login - nazwa użytkownika dostarczona przez administratora.

Każdorazowe wykonanie jakiejkolwiek metody z API wymaga wcześniejszego pobrania nowego tokenu oraz parametru md5 obliczonego według wzoru:

$md5 = md5 ( md5 ( $apiKey ) + $tokenFromGetTokenMethod );

gdzie:

  • md5() - funkcja skrótu MD5
  • $md5 - parametr przekazywany przy dostępie do API
  • $tokenFromGetTokenMethod - token uzyskany za pomocą metody “getToken”
  • $apiKey - klucz dostępowy do API uzyskany od administratora

Jeśli chcemy sprawdzić naszą metodę wyliczenia parametru $md5 możemy skorzystać z metody:

GET: antyplagiat.nekst.pl/auth/checkToken?login={login}&md5={md5}

parametry:

  • token - token autoryzacyjny
  • md5 - skrót klucza dostępowego i tokenu

Stworzenie zadania

Stworzenia nowego zadania dla danego tekstu odbywa się za pomocą metody:

POST: api.antyplagiat.nekst.pl/task/create

parametry:

  • token - token autoryzacyjny
  • md5 - skrót klucza dostępowego i tokenu
  • query - tekst do sprawdzenia (plain/text)
  • filename - nazwa pliku

Sprawdzenie statusu zadania

W celu sprawdzenia w jakim stanie znajduje się nasze zadanie należy skorzystać z metody:

GET: antyplagiat.nekst.pl/task/check

parametry:

  • token - token autoryzacyjny
  • md5 - skrót klucza dostępowego i tokenu
  • taskId - identyfikator naszego zadania otrzymany za pomocą metody tworzenia nowego zadania

Pobieranie wyników zadania

Gdy nasze zadanie ma status: DONE można pobrać wyniki korzystając z metody:

GET: antyplagiat.nekst.pl/task/result

parametry:

  • token - token autoryzacyjny
  • md5 - skrót klucza dostępowego i tokenu
  • taskId - identyfikator naszego zadania otrzymany za pomocą metody tworzenia nowego zadania

Dalsze prace

Aktualnie pracujemy nad integracją z ORPPD oraz innymi bazami i systemami (DSpace, Moodle, etc), dlatego API uczelniane zostanie przebudowane, zaś API Nekst zostanie zastąpione uogólnionym API obsługującym zarówno ORPPD, NEKST oraz inne bazy danych.