Drupal 8 y aplicaciones móviles
Luis Fonseca y Joaquín Bravo - Axai.mx
Instalar composer
# https://getcomposer.org/download/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
# https://getcomposer.org/doc/00-intro.md#globally
sudo mv composer.phar /usr/local/bin/composer
Crear un nuevo proyecto
composer create-project drupal/drupal public --prefer-dist
# public es el nombre de la carpeta
# mejor usar ~8.0 en vez de 8.2.0-beta3
# --prefer-dist = baja .zip en lugar de git
# si tu Internet es lento
wget -c https://ftp.drupal.org/files/projects/drupal-8.3.0.tar.gz
mv drupal-8.2.0-beta3 public
Crear repositorio de git
git init
cp example.gitignore .gitignore
vim .gitignore
# edit .gitignore line 15 to ignore:
core
vendor
modules/contrib
themes/contrib
git add .
git commit -m "Initial commit"
Don't Hack Core!
Con esto evitamos hacer modificaciones al core o a los módulos contribuidos porque no estan en nuestro repositorio.
Si quieres usar parches al core o a módulos, usa https://github.com/cweagans/composer-patches
y así las modifcaciones viven en composer.json
Agregar Drupal Console
composer require drupal/console:~1.0
./vendor/drupal/console/bin/drupal check
alias drupal=./vendor/drupal/console/bin/drupal
drupal list
# Esto modifico composer.json y composer.lock
git add composer.*
git commit -m "Add drupal console"
Instalar Drupal!
drupal site:install
drupal server
Exportar la configuración
# En sites/default/settings.php
# Generated value
$config_directories['sync'] = 'sites/default/files/config_HASH/sync';
# Update with new value
$config_directories['sync'] = 'sites/default/sync';
# Después correr en la consola:
drupal config:export
git status
git add sites/default/sync
git commit -m "Agregar configuracion a git"
Para descargar módulos
# Editar composer.json
# al final antes de la última llave:
},
"repositories": [ {
"type": "composer",
"url": "https://packages.drupal.org/8"
} ]
}
¿Dónde descargarlos?
# editar composer.json en la llave "extra"
"extra": {
...
},
"installer-paths": {
"modules/contrib/{$name}": [
"type:drupal-module"
],
"themes/contrib/{$name}": [
"type:drupal-theme"
]
}
},
Descargar módulos
# Siempre, por curiosidad
git status
git diff
git add composer.json
git commit -m "Agregar repo de drupal a composer.json"
composer require drupal/restui:~1.0
composer require drupal/image_raw_formatter:~1.0
composer require drupal/admin_toolbar:~1.0
git status
git diff
git add composer.*
git commit -m "Agregar módulos de rest y admin_toolbar"
Instalar y exportar config
# Desde la interfaz web o...
drupal module:install hal restui basic_auth
drupal module:install image_raw_formatter
drupal module:install admin_toolbar
drupal config:export
git status
git diff
git add sites/default/sync
git commit -m "Habilitar modulos (rest, admin_toolbar)"
Habilitar REST para node
# Desde la interfaz web
http://127.0.0.1:8088/admin/config/services/rest
Habilitar GET para "Content" con:
- hal_json
- basic_auth
Crear contenido
drupal create:nodes
curl "http://127.0.0.1:8088/node/1?_format=hal_json"
# Crear un usuario
https://gist.github.com/jackbravo/6a06e99ec409e2cc537afdce57c2df90
Crear vista
curl --user admin:admin "http://127.0.0.1:8088/rest/views/articles"
Exportar la vista
# Recuerden, por curiosidad:
git status
git diff
# Para exportar
drupal config:export
git status
git add sites/default/sync
git commit -m "Exportar vista REST a la configuración"
Referencias
Android con Drupal 8 como backend
Ciclo de la aplicación
- Base de datos y su estructura de tablas para SQLite
- Consumir el web service y conversión a formato Json
- Guardar los datos en SQLite y en el cache (Imagenes).
- Creación de la aplicación.
Instancia a IssueCollection
Crear nuevo hilo
Consulta a SQLite
Llamada al web service
Guardar datos en SQLite
Creación de Base de datos y las tablas
Creación de adaptador para pasar la informacion a los componentes Android
Layout principal
Listview articulos
Detalle articulo
drupal8-rest-apps
By jackbravo
drupal8-rest-apps
- 1,369