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)