V tomto článku se podíváme na framework Rails, který je framework založený na jazyce Ruby..Je určený pro vývoj webových aplikací napojených na databází, používající architekturu model-view-controller. Je znám hlavně pro jednoduché a rychlé generování kódu, celé webové aplikace můžeme vygenerovat pouze s použitím několika příkazů. Pro RESTful API se doporučuje použít jeho novější verze, které umožňuje snadné ignorování vrstvy view, která je zde zbytečná, a vytvořit tak webovou aplikaci zpracovávající pouze HTTP requesty.

https://rubyonrails.org/

Principy technologie

Jak již bylo zmíněno, jedná se o model-view-controller architekturu, tím pádem se podobá oběma předchozím frameworkům (ASP.NET Core a Java Spring). Při práci s Rails a obecně i v Ruby se doporučuje pracovat v Linuxovém prostředí, jelikož je zde daleko jednodušší instalace všech potřebných komponentů, než je tomu například v případě Windows. Pakliže máme Rails zprovozněné, můžeme začít stavět základy našeho RESTful API za pomocí příkazové řádky.

Nejprve je třeba vytvořit samotný projekt. Následující příkaz vytvoří základ pro naše ukázkové API pro jednoduchý blog. Parametrem –api udáváme, že se bude jednat pouze o webové rozhraní zpracovávající HTTP požadavky, bez vrstvy view.

rails new blog-api --api

Následně přichází na řadu vrstva model, tedy vygenerujeme pro náš projekt základní třídy modelů. Podíváme se i na jednoduché reference mezi modely. Tedy model komentářů Comment bude vždy přiřazen k nějakému článku Article – k tomu poslouží typ attributu references.

rails g model Article title:string content:string
rails g model Comment author:string text:string 
 article:references

Předchozí příkazy nám také vytvořili migrace, které pak jednoduše použijeme pro aktualizování struktury databázi. Vytvořené třídy v jazyce Ruby pak vypadají následovně:

# app/models/comment.rb
class Comment < ApplicationRecord
  # model association
  belongs_to :article

  # validation
  validates_presence_of :author, :text
end

Controllery, neboli třídy zpracovávající samotné HTTP požadavky k naším již vytvořeným modelům pak už vytvoříme jednoduše:

rails g controller Articles
rails g controller Comments

Controllery v Ruby pak vypadají následovně, můžeme si také všimnout velice snadného přístupu do databáze.

# GET /articles
def index
  @articles = Article.all
  json_response(@articles)
end

Celý vygenerovaný projekt obsahuje však spoustu dalších souborů než jen těchto několik tříd, avšak tyto třídy jsou pro nás do začátku nejpodstatnější. Naše vygenerované RESTful API pak již můžeme snadno spustit a dolaďovat podle našich představ.

V Rails také jistě využijeme testovací framework RSpec. Práci nám usnadní i množství dalších snadno dostupných balíčků pro jazyk Ruby (tzv. gemů).

Hlavní výhody

  • Generování kódu Rychlé a snadné generování kódu nám umožní vytvořit jednoduché RESTful API už během několika minut.
  • Řada dostupných komponentů Můžeme využívat řadu dalších komponentů vytvořených v jazyce Ruby, tzv gemů.
  • Tutoriály Zajímavé interaktivní výukové tutoriály Rails for Zombies, dostupné zde: http://railsforzombies.org/.
  • Přístup ke kolekcím Snadný přístup ke kolekcím do databáze.

Hlavní nevýhody

  • Windows O něco horší podpora pro windows, nutnost instalace spousty dodatečného software.
  • Přehlednost Vygenerované kódy v Ruby jsou dle mého názoru méně přehledné než tomu bylo např u ASP.NET Core nebo Java Spring.
  • Výkon Jedná se o velice pomalý framework ve srovnání s ostatními technologiemi.

Celkové zhodnocení

1 – nejlepší, 5 – nejhorší

  • Jednoduchost a intuitivnost – 1 Jednoduchá architektura MVC, mnoho zlehčujících prvků, se kterými je ale nutné se naučit pracovat.
  • Dokumentace – 1 Velice rozsáhlá dokumentace, k dispozici jsou také zajímavé výukové interaktivní tutoriály.
  • Spolehlivost – 3 Jedná se o dlouholetě testovanou a bezpečnou technologii, nicméně v posledních letech od ní velké firmy upouští. Nižší spolehlivost tohoto frameworku způsobuje hlavně nižší výkon jazyka Ruby.
  • Popularita – 3 Před lety se jednalo o nejpopulárnější framework pro tvorbu obdobných webových aplikací, avšak dnes je jeho popularita již na sestupu. Velké společnosti raději volí jiné alternativy, na vině je výkon jazyka Ruby, který zaostává oproti jeho alternativám.

Mezi další populární technologie pro jazyk Ruby lze řadit:

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *