REST API Server

Jak je vidět v ukázkové aplikaci, tak Jet umožňuje velice snadno vytvořit REST API server. Implementace REST API serveru není v Jet nic složitého. Server vlastně pouze spojuje dohromady to, co Jet umí sám o sobě. Tedy využívá vlastností ORM DataModel, formulářů, dalších drobností a celkově architektury Jet.

Z toho vyplývá, že sada tříd Jet\RESTServer je opravdu velice malá - až minimalistická.

V ukázkové aplikaci jsou dva moduly, které jsou ukázkou REST API a to Content.Articles.REST a Content.Images.REST. Tyto moduly plně využívají Jet MVC. Tedy je vytvořena báze určená pro REST API Server. Zmíněné moduly do této báze definují MVC stránky, což v tomto případě představuje koncové body REST API. A pak už je vše na kontrolerech. Tedy samotné REST API představují v ukázkové aplikaci třídy JetApplicationModule\Content\Articles\REST\Controller_Main a JetApplicationModule\Content\Images\REST\Controller_Main.

Zejména prvně jmenovaný kontroler - ukázkové REST API pro správu článků - je velice jednoduchý. Pokud jste to ještě neudělali, tak se na tu třídu koukněte. Hlavní je mikrorouter kontroleru - tedy určení operaci / akcí kontroleru na základě REST HTTP požadavku. Následují jednotlivé akce kontroleru, ovšem s nadsázkou se dá říct, že nejvíc kódu zabírá logování operací. Vše ostatní je jen a pouze využití toho, co Jet již umí.

Tedy od Jet\RESTServer již nečekejte žádné zázraky. Je to opravdu jednoduché propojení všeho ostatního. Ostatně patrně jste si všimli, že ony ukázkové kontrolery dědí od třídy Jet\MVC_Controller_REST a když se na tuto třídu kouknete, tak opět najdete pouze pár řádek kódu odkazujících na Jet\RESTServer.

Jet\RESTServer tvoří pouze tři třídy:

  • Jet\RESTServer
    Fasáda tvořená statickými metodami přes kterou se s RESTServer pracuje a která využívá vyměnitelný backend (tedy vkládání závislosti) - klasický přístup architektury Jet. Tedy to jak Jet zachází s požadavky a jak tvoří odpovědi můžete samozřejmě změnit dle vašich potřeb se zachováním jednotného API subsystému.
  • Jet\RESTServer_Backend
    Rozhraní definující backend.
  • Jet\RESTServer_Backend_Default
    Výchozí backend.

Předchozí kapitola
Jet\Navigation_Breadcrumb_Item
Další kapitola
Jet\RESTServer