Play Framework – moduł CRUD
Jestem w trakcie tworzenia aplikacji „prosty bash.org w jeden dzień” i naciąłem się na ciekawego buga w PF 1.0 b833. Żeby zrozumieć skąd on się wziął należy trochę przybliżyć czym jest moduł CRUD w Play Framework.
CRUD Framework
Pod tą nazwą kryje się grupa frameworków, które udostępniają programistom zestaw narzędzi pozwalających na automatyczne tworzenie klas CrudDAO. Idea zakłada, że programista na przykład tworzy klasę modelu, która rozszerza klasę abstrakcyjną. Klasa abstrakcyjna dostarcza metod CRUD. Innym podejściem jest dynamiczne tworzenie metod i zapytań tak jak jest to realizowane w Grails. W każdym bądź razie w Play mamy do czynienia z pierwszą metodą. Opis tworzenia klas modelu znajdziecie tu.
CRUD w Play Framework
Jeżeli chcemy uruchomić moduł CRUD w Play Framework to w pliku application.conf należy od-komentować linijkę
Listing 1. uruchomienie modułu CRUD
module.crud=${play.path}/modules/crud
Następnie w pliku routes należy włączyć mapowanie do modułu CRUD:
Listing 2. konfiguracja mapowań
* /admin module:crud
No i gotowe. Należy jeszcze raz podpiąć projekt do naszego IDE. Od tego momentu pod adresem /admin/ mamy do dyspozycji całkiem zgrabny panel do zarządzania naszymi obiektami.
Jest jeden bug
Niestety w buildzie 833 jest bug. Otóż nie można posortować listy obiektów. Każda próba sortowania powoduje, że zawsze dostaniemy obiekty posortowane malejąco po id. Trochę do dupy… Na całe szczęście jest obejście. Moduł CRUD jak łatwo zauważyć dodał nam klasę CRUD i cały pakiet crud. Wystarczy zatem tak jak opisałem w zgłoszeniu zmienić trzy linijki.
I tyle. Generalnie CRUD z PF jest bardzo wdzięcznym podejściem do problemu i pozwala na szybkie i stosunkowo łatwe tworzenie modelu bez potrzeby kombinowania z kodem. Dostajemy na talerzu elegancki interfejs zarówno od strony programisty jak i użytkownika.