Creando un CRUD implementando un API REST HTTP (con diversos backends)
Clase 34 de 57 • Curso de Ionic Avanzado 2017
Contenido del curso
Estructura de nuestra App con Ionic
- 4

Arquitectura de una app en Ionic
03:55 min - 5

Proyecto: Platzinger App
15:43 min - 6

Repositorio del curso
00:11 min - 7

Qué son pages y cómo generar las primeras de nuestra app
17:29 min - 8

Navegación básica entre pages
12:58 min - 9

Reto: Página “Acerca de” accesible desde el menú lateral
00:10 min - 10

Tomando los conceptos compartidos de Angular y Ionic
01:52 min
Basics de Angular y TypeScript
- 11

Aclaraciones Ionic vs Angular
01:03 min - 12

Cómo usar tipos de datos con typescript
11:08 min - 13

Qué son e implementando interfaces de TypeScript
09:52 min - 14

NgFor aplicado en la lista de usuarios
06:43 min - 15

NgIf aplicado en la lista de usuarios
05:59 min - 16

Navegación con parámetros
07:27 min - 17

Accediendo a nuestros usuarios con conversation.ts
06:21 min - 18

Creando un servicio de usuarios e inyectando el servicio en nuestros pages
08:45 min - 19

Pipes en TypeScript (Date, Number, Json)
07:53 min - 20

Creando nuestro propio 'Pipe' para buscar entre nuestros contactos
11:56 min - 21

Reto: Mostrar un icono diferente según el status del usuario
00:16 min
Agregando estilos con CSS a nuestra aplicación
- 22

Cómo usar estilos CSS y referenciar recursos
17:23 min - 23

Implementando estilos en la pantalla de login
13:27 min - 24

Implementando estilos en la pantalla de home
12:02 min - 25

Implementando estilos en la pantalla de conversación
12:28 min - 26

Usando ngStyle y ngClass para añadir estilos dinámicos
10:44 min - 27

Cambiar icono según status
08:16 min
Acceso a datos remotos
- 28

Información importante antes de continuar
01:16 min - 29

¿Qué es Firebase?
03:56 min - 30

Reemplazo del servicio de usuarios por un servicio dinámico con conexión a Firebase
20:40 min - 31

Login/Registro de usuarios con email y password
13:49 min - 32

Login/Registro de usuarios con Facebook
22:06 min - 33

Implementando Log Out
08:59 min - 34

Creando un CRUD implementando un API REST HTTP (con diversos backends)
Viendo ahora
Opciones y Acceso Nativo
- 35

Crear page de Perfil
08:14 min - 36

Editar datos básicos del perfil de usuario
19:35 min - 37

Configurando Android Studio
22:04 min - 38

Capturar fotos de cámara y álbum
19:19 min - 39

Preparando aplicación para recibir fotos desde la cámara y galería del Android
09:00 min - 40

Guardando y asignando una foto de perfil al usuario desde la cámara
15:49 min - 41

Preparando aplicación para utilizar geolocalización
14:29 min - 42

Conectándonos al API de Google
12:41 min
Conversación
Amigos
- 47

Planeación previa para la característica / Cómo generaremos las solicitudes
02:56 min - 48

Enviando una solicitud de amistad
17:17 min - 49

Revisando solicitudes de amistad
10:50 min - 50

Aceptando solicitudes de amistad
18:44 min - 51

Mostrando sólo amigos
06:34 min - 52

Componentes anidados (con paso de parámetros)
12:13 min
Deploy
Contenido Bonus
Las apps que construimos en Ionic, son meramente de frontend, esto quiere decir, que los archivos de la aplicación en sí, sólo son ejecutados en el browser cliente. Dado esto, nuestras apps deben usar ciertos mecanismos para conectarse con el backend, como comunicación a través de sockets puros o llamados HTTP. Nuestra app se comunica con Firebase usando la librería AngularFire, la cual establece comunicación con nuestra base de datos usando sockets, sin embargo, fácilmente puedes reemplazar esta librería (y firebase) por cualquier backend que exponga un API que el app pueda consumir.
Por ejemplo, puedes usar un backend de PHP, usando Laravel. Puedes usar este repositorio para montar tu propio servidor de Laravel: https://github.com/EduardoIbarra/laravelcrud (debes de hacer configuraciones de base de datos e instalación de dependencias usando composer, puedes encontrar cómo crear este backend y como ejecutarlo aquí: https://www.youtube.com/watch?v=2RNZ1TcK_kI&list=PLYPjmy5IVxT_EXZQK-Getu3xKAJ4bPOa6
Las funciones de un CRUD son las siguientes:
- Create, usando un verbo HTTP llamado POST
- Read, usando un verbo HTTP llamado GET
- Update, usando un verbo HTTP llamado PUT
- Delete, usando un verbo HTTP llamado DELETE
Te recomiendo crear un nuevo app de Ionic para consumir este CRUD de Laravel. Además, agregar un servicio como los que creamos para acceder a los datos de Firebase y de esta manera acceder al CRUD.
Para lograr acceder a métodos HTTP, necesitamos el Módulo de HttpClient de Angular. Lo que hay que hacer para tenerlo disponible en nuestra app es dirigirnos a nuestro app.module.ts, y en la sección de imports, colocar: HttpClientModule.
Luego, en el servicio que agregaste para el acceso al CRUD, en su constructor, agregar una propiedad del tipo HttpClient, de esta manera: private httpClient: HttpClient.
Aquí te muestro los métodos de acceso para este CRUD en particular:
get() { return this.httpClient.get(this.API_ENDPOINT + '/movies'); } save(movie: Movie) { const headers = new HttpHeaders({'Content-Type': 'application/json'}); return this.httpClient.post(this.API_ENDPOINT + '/movies', movie, {headers: headers}); } put(movie) { const headers = new HttpHeaders({'Content-Type': 'application/json'}); return this.httpClient.put(this.API_ENDPOINT + '/movies/' + movie.id, movie, {headers: headers}); } delete(id) { return this.httpClient.delete(this.API_ENDPOINT + '/movies/' + id); }
Y a partir de este punto, lo demás es casi exactamente igual que acceder a método de Firebase, simplemente, inyectas el servicio en tu Page o Componente y llamas a sus métodos, los cuáles regresan Observables a los que puedes suscribirte (.subscribe())
Si deseas el resultado final de este crud para Angular, puedes obtenerlo aquí: https://github.com/EduardoIbarra/angularcrud/tree/2_RoutingInterfaces
CRUD con Django
Para hacer el CRUD con Django, realmente el cambio es poco, puedes tomar el CRUD de Django que cree desde este repositorio de Github: https://github.com/EduardoIbarra/djangocrud
Este CRUD se desarrolló basándome en esta guía y adaptando el código al mismo caso del CRUD de Laravel: https://codeburst.io/create-a-django-api-in-under-20-minutes-2a082a60f6f3
Aquí está una versión del CRUD de Angular adaptado a nuestro nuevo CRUD de Django: https://github.com/EduardoIbarra/angularcrud/tree/django, si te ocurre algún error relacionado con Access-Control-Allow-Origin, checa este url: https://gist.github.com/miraculixx/6536381