Interfejs programistyczny aplikacji: Różnice pomiędzy wersjami
(→Tworzenie zadań i odbieranie raportów) |
(→API OSA) |
||
Linia 14: | Linia 14: | ||
<pre>POST: http://<adres serwera osa>/api/job/create</pre> | <pre>POST: http://<adres serwera osa>/api/job/create</pre> | ||
− | parametry: | + | parametry (<u>podkreślone są wymagane</u>): |
− | * reportURL - Adres do przesłania raportu (adres zwrotny) | + | * <u>reportURL</u> - Adres do przesłania raportu (adres zwrotny) |
− | * university - Nazwa uniwersytetu | + | * <u>university</u> - Nazwa uniwersytetu |
− | * polonCode - Kod POL-on uniwersytetu '''(w tej chwili OSA nie zapisuje tych informacji)''' | + | * <u>polonCode</u> - 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]''' | + | * <u>languageCode</u> - 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]''' | * documentType - Typ pracy '''[możliwe pola: licenciate, engineer, master, postgraduate, doctoral]''' | ||
− | * faculty - Jednostka podstawowa | + | * <u>faculty</u> - Jednostka podstawowa |
* fieldOfStudy - Kierunek studiów '''(w tej chwili OSA nie zapisuje tych informacji)''' | * fieldOfStudy - Kierunek studiów '''(w tej chwili OSA nie zapisuje tych informacji)''' | ||
* knowledgeArea - Obszar wiedzy | * knowledgeArea - Obszar wiedzy | ||
− | * title - Tytuł pracy | + | * <u>title</u> - Tytuł pracy |
− | * author - Autor | + | * <u>author</u> - Autor |
− | * promoter - Promotor | + | * <u>promoter</u> - Promotor |
− | * reviewer - Recenzent | + | * <u>reviewer</u> - Recenzent |
− | * file - Plik | + | * <u>file</u> - Plik |
odpowiedź: | odpowiedź: |
Wersja z 15:06, 12 sty 2016
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).
Spis treści
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 (podkreślone są wymagane):
- 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.