API - úvod
Obecné
Každý portál má své separátní nastavení přístupu a každý portál má svůj vlastní end-point pro volání API.
Popis API se nachází na adrese: {PortalURL}/swagger - tedy například https://medicalmedia.cuni.fenomio.stream/swagger
URL jednotlivých api volání napoví popis na /swagger adrese. Většinou se pracuje s entitou media a jejími relacemi. To je na adrese {PortalUrl}/api/v1/media...
Zabezpečení
API je zabezpečeno standardním Bearer tokenem v hlavičce každého requestu. https://swagger.io/docs/specification/authentication/bearer-authentication/
Tedy název hlavičky je "Authorization" a její hodnota "Bearer APITOKEN", kde APITOKEN je token vygenerovaný v administraci platformy u příslušného portálu.
- Tip: Pro jednodušší testování na webu jsme implementovali výjimku - pokud v requestu hlavička "Authorization" chybí, autorizace se úspěšně provede, pokud je ve stejném webovém prohlížeči přihlášen uživatel s rolí Administrátor daného portálu. To by mělo umožnit volání všech API funkcí přímo z prostředí Swagger dokumentace, bez nutnosti integrovat jiné programátorské prostředí.
API volání můžeme rozdělit na práci s určitými entitami, nebo relacemi na:
Práci s médii - hledání, vytvoření, úprava, příprava na encoding
- /api/v1/media (GET)
- /api/v1/media (POST)
- /api/v1/media/{mediaId}/EncodeFileSourceFromCloud (POST)
- Updates existing media entity (PUT)
Práce se zatříděním média:
- /api/v1/media/{mediaId}/AddMediaCriteriaValue (POST)
- /api/v1/media/{mediaId}/RemoveMediaCriteriaValue (POST)
- /api/v1/media/{mediaId}/AssignedMediaCriteriaValues (GET)
Práce se zařazením organizací média:
- /api/v1/media/{mediaId}/AddOrganization (POST)
- /api/v1/media/{mediaId}/RemoveOrganization (POST)
- /api/v1/media/{mediaId}/AssignedOrganizations (GET)
Práce s přiřazením rozsahů povolených IP adres:
- /api/v1/media/{mediaId}/AddMediaIpList (POST)
- /api/v1/media/{mediaId}/RemoveMediaIpList (POST)
- /api/v1/media/{mediaId}/AssignedMediaIpLists (GET)
Práce s přiřazením seznamů uživatelů:
- /api/v1/media/{mediaId}/AddMediaUserList (POST)
- /api/v1/media/{mediaId}/RemoveMediaUserList (POST)
- /api/v1/media/{mediaId}/AssignedMediaUserLists (GET)
Práce s přiřazením externích serverů:
- /api/v1/media/{mediaId}/AddEmbedPosition (POST)
- /api/v1/media/{mediaId}/RemoveEmbedPosition (POST)
- /api/v1/media/{mediaId}/AvailableEmbedPositions (GET)
Práce s kapitolami:
- /api/v1/media/{mediaId}/AddMediaChapter (POST)
- /api/v1/media/{mediaId}/RemoveMediaChapter (POST)
- /api/v1/media/{mediaId}/MediaChapterList (GET)
Práce s titulky:
- /api/v1/media/{mediaId}/AddMediaSubtitle (POST)
- /api/v1/media/{mediaId}/RemoveMediaSubtitle (POST)
- /api/v1/media/{mediaId}/MediaSubtitleList (GET)
Práce s přístupovými tokeny:
- /api/v1/media/{mediaId}/AddMediaAccessToken (POST)
- /api/v1/media/{mediaId}/RemoveMediaAccessToken (POST)
- /api/v1/media/{mediaId}/AvailableMediaAccessToken (GET)
Párce s playlisty:
- /api/v1/media/{mediaId}/AddMediaPlaylist (POST)
- /api/v1/media/{mediaId}/RemoveMediaFromPlaylist (POST)
- /api/v1/media/{mediaId}/MediaPlaylistList (GET)
Odesílání notifikačních e-mailů pomocí API:
- /api/v1/service/SendDirectNotifyMail (POST)