ASP. API NET Core y desarrollo de Blazor | Trevoir Williams | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

ASP. API NET Core y desarrollo de Blazor

teacher avatar Trevoir Williams, Jamaican Software Engineer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      1:57

    • 2.

      Instalación de Visual Studio 2019 Community Edition

      10:14

    • 3.

      Instalación de SQL Server Express Edition

      5:21

    • 4.

      Crea una cuenta de GitHub

      2:28

    • 5.

      Instalación y exploración de PostMan

      9:39

    • 6.

      Crear. Proyecto de API web central para la red

      10:10

    • 7.

      Visita a la estructura del proyecto y los archivos

      18:21

    • 8.

      Configuración y uso de la interfaz de usuario de Swagger

      28:09

    • 9.

      Configuración del registro con NLog

      22:18

    • 10.

      Configuración de CORS

      4:30

    • 11.

      Revisa y agrega cambios a GitHub

      3:55

    • 12.

      Crear base de datos en SQL Server

      14:29

    • 13.

      Implementación de clases de datos y del marco de totalidad

      16:42

    • 14.

      Configuración de AutoMapper y DTO

      11:54

    • 15.

      Revisa y agrega cambios a GitHub

      1:47

    • 16.

      Autores: repositorio de configuración y servicio

      23:27

    • 17.

      Autores: controlador de configuración

      7:28

    • 18.

      Autores: configura los endpoints GET

      31:33

    • 19.

      Autores: configura el punto de conexión CREATE

      23:19

    • 20.

      Autores: configura UPDATE Endpoint

      18:06

    • 21.

      Autores: configuración del endpoint DELETE

      9:15

    • 22.

      Revisa y agrega cambios a GitHub

      1:59

    • 23.

      Libros: instalación del repositorio y servicio

      7:29

    • 24.

      Libros: Setup Controller

      3:14

    • 25.

      Libros: configuración de puntos finales GET

      15:30

    • 26.

      Libros: configuración CREATE Endpoint

      17:36

    • 27.

      Libros: configuración del punto final UPDATE

      13:01

    • 28.

      Libros: configuración DELETE Endpoint

      9:22

    • 29.

      Revisa y agrega cambios a GitHub

      1:58

    • 30.

      Tablas de identificación de andamios en una base de datos existente

      7:16

    • 31.

      Usuarios de pruebas de semillas y roles

      20:20

    • 32.

      Configuración del controlador de usuarios

      15:24

    • 33.

      Configuración de la autenticación de tokens web JSON (JWT)

      26:49

    • 34.

      Configuración del controlador y las autorizaciones de acciones

      14:57

    • 35.

      Revisa y agrega cambios a GitHub

      6:23

    • 36.

      Crea y entiende la estructura de proyectos de Blazor

      21:13

    • 37.

      Configuración de repositorios de clientes y servicios HTTP

      29:08

    • 38.

      Configuración del registro de usuarios (API)

      20:05

    • 39.

      Configuración del formulario de registro de usuarios

      31:28

    • 40.

      Configuración del inicio de sesión de los usuarios: extiende el proveedor de autenticación de Blazor

      40:20

    • 41.

      Configuración del inicio de sesión de los usuarios - parte 2

      22:04

    • 42.

      Revisa y agrega cambios a GitHub

      3:01

    • 43.

      Configuración del repositorio de autores y servicio

      7:26

    • 44.

      Autores de listas de configuración

      23:18

    • 45.

      Configuración del autor de la vista

      22:01

    • 46.

      Autor de la actualización de configuración

      22:02

    • 47.

      Configuración para eliminar autor

      7:56

    • 48.

      Configuración del autor

      11:17

    • 49.

      Correcciones y adiciones esenciales de la distribución

      9:53

    • 50.

      Corregir la respuesta JSON de libros de autor

      4:05

    • 51.

      Revisa y agrega cambios a GitHub

      3:55

    • 52.

      Configuración y creación de un libro - parte 1

      32:57

    • 53.

      Configuración y creación de un libro - parte 2

      11:45

    • 54.

      Libro de actualizaciones de configuración

      16:45

    • 55.

      Configuración del libro para eliminar

      4:46

    • 56.

      Correcciones y adiciones esenciales de la distribución

      9:29

    • 57.

      Revisa y agrega cambios a GitHub

      1:44

    • 58.

      Introducción a Blazor para WebAssembly

      11:40

    • 59.

      Puerto del servidor de Blazor a Blazor WebAssembly

      13:33

    • 60.

      Modificación del código para Blazor WebAssembly

      19:06

    • 61.

      Correcciones y adiciones esenciales de la distribución

      5:44

    • 62.

      Blazor WebAssembly y carga de archivos API (crear y ver)

      26:06

    • 63.

      Blazor WebAssembly y carga de archivos API (edición y lista)

      16:15

    • 64.

      Aplicación web progresiva

      6:52

    • 65.

      Revisa y agrega cambios a GitHub

      4:06

    • 66.

      Migrar proyecto a . NET 5

      19:40

    • 67.

      Soluciona la carga de archivos: elimina BlazoredInputFile

      11:22

    • 68.

      Correcciones de código esencial y configuración

      5:15

    • 69.

      Crear una cuenta de Microsoft Azure

      7:12

    • 70.

      Implementación de la API y la base de datos de la tienda de libros

      18:29

    • 71.

      Implementar el servicio de aplicación web de Blazor Server

      2:32

    • 72.

      Implementar Blazor WebAssembly en el servicio de aplicación web de Azure

      12:32

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

537

Estudiantes

--

Proyecto

Acerca de esta clase

Descripción general

Aprenderás a construir una API RESTful con la API 3.1 de ASP.Net Core 3.1 API, Entity Framework, el Patrón de repositorio y otras herramientas y servicios para las pruebas y el registro, y después consumirla en una aplicación moderna Blazor.  Este curso completo te mostrará cómo usar Visual Studio, Microsoft SQL Server Express y explorarás el desarrollo, el consumo, las pruebas y el alojamiento  una API REST en un . Aplicación NET. 

ASP.NET Core 3.1 es el marco multiplataforma moderno de Microsoft para crear aplicaciones web preparadas para la empresa. En este curso,  aprenderás todo lo que necesitas saber sobre la construcción de una API RESTful con ASP.NET Core 3.1, desde la comprensión de la estructura de carpetas y los archivos hasta la construcción de una API web completa.

Por qué aprender ASP.NET Core 3.1

Microsoft. NET es la plataforma que impulsa la tecnología empresarial de muchas de las principales corporaciones de los Estados Unidos y de muchos otros países. Es la tecnología predominante que se usa para impulsar la tecnología empresarial a escala empresarial. Las empresas han elegido . NET por su escalabilidad, confiabilidad y soporte comprobados.

El. El idioma NET que debes aprender es C#, ya que es el idioma más utilizado en la actualidad. Es un lenguaje de programación de propósito general que puede manejar casi cualquier problema, desde aplicaciones web de escritorio hasta aplicaciones móviles y dinámicas. Como tal, hay una gran demanda en todo el mundo de . Desarrolladores de NET en una variedad de industrias, lo que significa que hay más trabajos disponibles para los candidatos con una base basada en . Tecnologías NET.

Actualiza Blazor y proyectos de API a . NET 5 *NUEVO*

.NET 5 es lo último en tecnologías de SDK de Microsoft y, mientras desarrollamos esta solución con . NET Core 3.1, hacemos una actualización a . NET 5 con un esfuerzo muy mínimo. ¡TODO sigue funcionando!

¿Por qué desarrollar con Blazor?

Los marcos web de JavaScript del lado del cliente más populares han sido Angular, React, Vue y otros. En este curso, lo mantenemos . NET con Blazor, que es la respuesta de Microsoft a ese monopolio.

Blazor te permite crear una aplicación de página única, encima de . NET Core y continúa la codificación en C# (sin necesidad de cambiar demasiado entre C# y JavaScript).

Exploraremos muchas complejidades del ciclo de vida de Blazor, el flujo de datos, la interoperabilidad de JavaScript y las actividades y matices de desarrollo generales.

Construye una base sólida en . Programación básica de NET:

  • Construir una API web REST completamente basada en datos con tecnología de vanguardia

  • Construir una interfaz de usuario del lado del cliente de una aplicación de página única con Blazor Server y Blazor WebAssembly respectivamente

  • Conéctate a una base de datos existente con Entity Framework Core

  • Patrón de repositorio e inyección de dependencias

  • Configuración del registro con NLog

  • Comprender los principios de diseño REST

  • Comprende C# y . Sintaxis web del núcleo de red

  • Cómo entender la autenticación de usuarios con JWT (tokens web JSON)

  • Almacenar tokens web JSON con el almacenamiento del navegador local

  • Cómo manejar el estado de autenticación de usuarios de la aplicación Blazor

  • Consumir la API web REST en la aplicación Blazor (por extensión). Aplicaciones NET)

  • Comprenderás cómo usar modelos, DTO y AutoMapper

  • Administra paquetes con NuGet Manager

  • Configuración de GitHub para el control de fuentes

Contenido y descripción

Para tomar este curso, necesitarás tener algunos conocimientos de programación orientada a objetos, si no es que C#. Incluso si no tienes mucha exposición al tema. Este curso es muy adecuado para principiantes y está lleno de consejos de desarrollo.

Este es un curso enorme. Más de 13 horas de contenido premium, pero divididas de manera inteligente para resaltar un conjunto de actividades relacionadas con cada módulo de la aplicación que se está construyendo. También veremos la solución de problemas y la depuración de errores a medida que avanzamos; la implementación de mejores prácticas; la escritura de lógica eficiente y la comprensión de por qué los desarrolladores hacen las cosas como lo hacen. Tus conocimientos aumentarán, paso a paso, a lo largo del curso, y tendrás el reto de ser lo mejor que puedas ser.

Cuando termines el curso, te habrás movido por Visual Studio y examinado los errores de lógica y sintaxis tanto que será una segunda naturaleza para ti cuando trabajes en el programa. Entorno NET. Esto hará que tus nuevas habilidades aprendidas se conviertan en un uso práctico e impresionará a tu jefe y compañeros de trabajo.

El curso se completa con archivos que funcionan alojados en GitHub, y se incluyen algunos archivos para que te sea más fácil replicar el código que se está demostrando

Conoce a tu profesor(a)

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

Profesor(a)

Habilidades relacionadas

Desarrollo Desarrollo web
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Bienvenido a este emocionante curso es feed dotnet Core API y un blazer no era y desarrollo de servidores. Sí, así es. Vas a estar viendo cómo desarrollar una API usando una velocidad en un núcleo. Y estarás explorando hall para construir una aplicación cliente usando blazer. Y miramos tanto el WeBassembly o no fue para abreviar las distribuciones de servidores de esta tecnología láser. Mi nombre es problemático o Williams y tengo más de 10 años de experiencia como ingeniero de software y conferencista. Y te puedo asegurar, voy a hacer que todo el contenido sea muy amigable para principiantes y vamos a divertirnos mucho en este curso. Mis objetivos para ti en este curso es tenerte plenamente funcional. Como desarrollador de software, deberías poder construir una API web totalmente impulsada por datos y una aplicación de cliente blazer, ya sea en el lado del servidor estén los WebAsembly dijo, debes ser al menos cómodo y lo suficientemente hábil para apreciar por qué harías uno y no el otro. También veremos algunos patrones de diseño en el nombre del patrón de repositorio. Y mirando la inyección de dependencia, llegaremos a entender cómo funciona JSON Web Tokens o JWT para abreviar, la autenticación en el flujo de trabajo, estaremos buscando consumir API de descanso y configurar la autenticación personalizada en blazer. Y al final seré alto. También veremos cómo podemos desplegar nuestras aplicaciones API y cliente en internet para uso general. Algunas tecnologías que estaremos explorando a través de ASP.Net Core, veremos la API de Entity Framework Core y la autenticación JWT, Auto Mapper, API hosting, testing, Source Control, e incluso el registro. Te digo que este curso está repleto de mucho contenido. Entonces con todo lo dicho, estoy emocionado por este curso. Espero que tú también lo estés, y te veré pronto. 2. Instalar Visual Studio 2019 la comunidad: Hey, chicos, en este video se estará instalando Visual Studio 2019 Community Edition Ahora para llegar al sitio web de estudio visual, escribimos en visual studio dot Microsoft dot com Photo No te veas raro studio, y nosotros quieren conseguir la edición de la comunidad. Por lo que sí tenemos profesional y sí tenemos empresa. Pero en la edición comunitaria es gratuita para individuos sobre usuarios académicos en ditz. También abierto, señor. Entonces, una vez más , um, si estás en una sesión entre prensa, deberías conseguir empresa y tienes que pagar una licencia por eso. Pero entonces para nuestro proyecto de mascota, un proyecto individual o proyectos académicos propósitos de código abierto, comunidades ahí es gratuito y está totalmente impulsado y esperando ser utilizado. Por lo que simplemente ponemos a la comunidad en ese entonces que los detonadores no son señor para un instalador. Por lo que solo hacemos clic en ese Insultado que acaba de descargar Run. Se inicializará Onda. Podemos seguir adelante con nuestras instalaciones para que podamos continuar en que tan solo nos pesca unos cuantos archivos . Está bien, así que después de que termine con esas cargas de trabajo iniciales, entonces lo que hará es preguntarnos. ¿ Qué paquetes deseamos instalar para apoyar lo que sea que vamos a estar desarrollando. Entonces, como dije, estamos desarrollando una aplicación web, Así que necesitábamos SP dotnet y paquete de desarrollo Web o carga de trabajo en. Entonces tomamos eso, um, tomamos esa caja aquí en adelante luego a la derecha y dijimos, Ves que nos están dando una pequeña lista de lo que se incluirá. Por lo que el último marco de red de puntos es de cuatro puntos lo. Entonces ya sabes, es que estamos consiguiendo 4.4 a 4.6. Por lo que entiendo para seguir adelante en la teca. Todos estos todos estos puntos marco neto 4.6 punto 1.2 punto siete punto lo apuntan. Pero eso no es todo, sin embargo. Necesitamos ese núcleo Met, pero entonces este curso se basa en dot net core 3.1, que es el último. Pero si vas con visual studio y se están llenando 0.1 para que podamos dejar eso solo después de esto, entonces te mostraré cómo conseguir 3.1. Además, ya que vamos a estar haciendo un poco como tu manera de cosas, sólo voy a tomar el cuadro A cero. No tenemos que modificar mucho más allá. Sólo estoy marcando esa caja. Asegúrate de que tenemos cualquier biblioteca que requeriría que puedas hacer un desglose. Basta con ver qué más está disponible para ti. Seguro. Dejó el desarrollo de plataforma cruzada de punto net core. Si haces clic en esa carga de trabajo, entonces obtienes algunas cosas más del núcleo neto de puntos. Pero creo que muchos de esos ya están incluidos en la carga de trabajo de desarrollo Web ya que nota que el espacio total aumentará con cada carga de trabajo que elija. Entonces solo voy dedo del pie en Tick the 01 on. Solo voy a asegurarme de tener la carga de trabajo multiplataforma de punto net core en las cargas de trabajo de desarrollo web y red de puntos de SB . No estamos haciendo mucho desarrollo con como tu para que lo puedas llevar si quieres. Si tú Si sabes que tienes el espacio, eso está bien. Y fuera de curso, cuanto más tices más tiempo te llevará la descarga. Pero no voy a tomarlo para esta partícula,Por supuesto, Por supuesto, así que una vez más sólo tenemos el sp dot net y desarrollo Web, y tenemos el desarrollo de la plataforma cross de darknet core en los números uno a hacer clic, Instalar en, entonces eso iniciará la instalación, que es realmente un don 't load. Por lo que en base a la velocidad de Internet, esto va a variar en longitud. Algunos apenas quinto reanudan cuando todo está terminado aquí. Está bien, así que este proceso está terminado. Burba tomó sólo desaprender nuestro en su ver que requieren que reinicie mi computadora con el fin de completar esta configuración. Entonces voy a decir que no. No, no es que no necesites reiniciar, pero hay algo más que quiero mostrarte antes de que te deje reconstruir. Entonces voy a decir, no sé cuál es básicamente simplemente no va a completar la instalación todavía. Pero solo voy a minimizar esto y les voy a mostrar que necesitamos descargar las herramientas de punto net core 3.1 en, así que ya tengo eso abierto y se puede llegar a este sitio web a través de dot net dot Microsoft dot com on. Entonces estoy en slash Don't Lord, donde me está mostrando que no puedo conocer las herramientas dot net core 3.1 o el tiempo de ejecución para eso específicamente así como dot net framework cuatro puntos it. Por lo que en realidad acabamos de instalar visual studio con el marco dot net. Cuatro puntos. Se trata de herramientas, así que no necesitamos prestar atención a eso. Pero sí necesitamos el núcleo 3.1 encendido. Yo sí dije antes que el núcleo net dot está construido para múltiples plataformas. Es plataforma cruzada. Entonces ves que las ventanas no saben que el Lennox Stone Lord, que los McCoys no y tienen un médico no Señor. Está bien, así que iremos con las ventanas. Estoy usando una máquina de Windows en te estoy enseñando en base a Windows. Pero dicho eso, cualquiera que sea un año en ti no conoces el que te conviene en DWI Corre el up así que soy Winton. Simplemente no cargue el punto net core runtime on. También voy a no conocer el sdk de punto net core, así que solo voy a no saber la X 64 porque estaba 64 bits encendido. No podemos saber eso al instalarlo. Entonces, cuando el instalador se apaga, es bastante sencillo, un slick in star on. Entonces hará lo que tenga que hacer en. Entonces verás que fue exitoso. Entonces realmente no tardé tanto en instalarme. Solo voy a volver y también a conseguir el sdk. Entonces lo que obtuve fue un tiempo de carrera. Fui a descargar el SDK no sdk corto para kit de desarrollo de software. Entonces ahí es donde estarán las herramientas de desarrollo real, um, puestas disposición para que el estudio visual interactúe con previo aviso. Están diciendo que este lanzamiento solo es compatible con visual Studio 2019. Por lo que si tienes 2017 o una versión anterior, entonces es posible que quieras actualizar. Entonces eso no sé. ¿ Simplemente instalemos eso así y luego iniciemos A viene con una instalación de palo, dejemos que haga lo suyo. Y luego dice que todo se instaló con éxito y usan todos sus propios tiempos y todos los demás señalándonos. Los diferentes documentos que podemos usar para tu recurso es para que podamos cerrar eso. Sé que hemos hecho todo esto. Entonces puedo reiniciar las computadoras. No quería reiniciar y luego olvidar los pasos. Entonces solo me aseguré de instalar todo y luego solo hacemos un gran reinicio Onda baja la computadora para hacer lo suyo. Está bien, así que sepan que Ari Start está completo. Cartas. Adelante y despide Visual Studio 2019 en. Puedes encontrarlo yendo al menú de inicio, y probablemente puedas simplemente escribir Visual Studio aparecerá ya anclado mi estudio visual 2019 a mi menú Inicio, así como a mi barra de tareas. Por lo que con solo hacer clic en este ícono morado que se parece a ese signo de infinito, lanzaremos nuestro estudio visual la vez que se ponga en marcha. Te anima a iniciar sesión o crear una cuenta, y puedes hacerlo más tarde. No, con la adición de la comunidad, en realidad te dará un poco, como un tipo de sensación de prueba de 30 días si no inicias sesión. Entonces si eliges, no sabes, tal vez más tarde y después después por la línea, ves como están diciendo, o ha caducado o algo así. En realidad es sólo decir que esperan que tú iniciaste sesión quiere iniciar sesión. Entonces no hay experiencia de caducidad que tengas parte, así que solo voy a iniciar sesión en la cuenta de windows, y esto son las ventanas son conos. ¿ El Microsoft es un maíz que me duro mucho antes? Andi. Este es el que abusar para cualquiera como tus actividades relacionadas que nuestra casa entiende para seguir adelante e iniciar sesión Una vez más, puedes crear un conos de Microsoft o, si ya tienes uno, solo úsalo al iniciar sesión. Entonces si optaste por iniciar sesión o dijiste no saber, tal vez más tarde te lleven al discurso donde te pregunten qué estilo te gusta. Tan oscuro, tema oscuro es toda la región. Yo t todo bien. No, pero puedes elegir el tema que sea apropiado para ti en la configuración de desarrollo. Voy a poner ese dedo desarrollo web. Entonces, General, Sí, está bien. Pero entonces, ¿qué desarrollo? Ese tipo de poner ciertas cosas en ciertos lugares para que sea más obvio para que lo veas. Muy bien, Así que una vez que hagas todo eso, puedes iniciar estudio de resultados No, solo no importa. Soy dedo del pie firmando sentir porque estoy en un servidor y son ciertas restricciones, nuestras propias ciertas actividades. Y así solo estoy destacando eso para demostrar que si dijiste no saber, tal vez más tarde, entonces esta es una pantalla que obtendrás. Una vez visual studio Florentines, se te pedirá que inicies sesión y a la derecha. Ya ves que tienes un juicio de 30 días. Por lo que una vez más, su periodo de evaluación como y que por favor inicie sesión remolque una gran cantidad de productos. Todo lo que realmente necesitas hacer es iniciar sesión en ese mensaje de evaluación desaparece. Alguien es un letrero una vez más. Está bien, sé que me ficharon. ¿ Ves eso? Tengo el cono personalizado que tenían a mi contenido. Y entonces ese mensaje de evaluación realmente se ha ido. Y así puedo recoger ropa. Y luego esta es la pantalla de lanzamiento para Visual Studio 2019. Por lo que desde aquí, puedo revisar algo de un Control fuente. Puedo abrir un proyecto existente, abrir una carpeta local para crear nuevos proyectos. Entonces vamos a hacer una pausa aquí mismo. Si llegaste tan lejos, entonces eso es perfecto. Has instalado resultados Studio 2019 Community edition on. Entonces ya estás listo para la siguiente actividad. 3. Instalar SQL Server Express Edition: como bienvenido al primer video en discurso. Introducción a SQL Server 2017 en el Today estará buscando descargar e instalar este bit off software. Ahora una base de datos es más o menos una colección lógica de datos relacionados en Eso es todo. En pocas palabras. Si tienes experiencia previa con bases de datos, probablemente vino con Microsoft Access o mi SQL. Y solo quieres extender tus conocimientos más allá de eso. Y aunque no tengas conocimientos previos fuera de las bases de datos, este es un excelente curso para ponerte al día con lo que las bases de datos son capaces. Qué preparación utilizable en su lugar sobre cómo puedes ir a iniciar tu viaje hacia convertirte en administrador de bases de datos o simplemente manipular datos en bases de datos por completo. Como dije antes, estaremos explorando todos estos conceptos usando Microsoft SQL Server 2017. Andi. Ya lo tengo arriba en mi pantalla. El pagino de No pierdas. Por lo que he incluido la U. R L, como se describe aquí en las notas de clase, y esto te llevaría a descargar el motor de base de datos express de Microsoft SQL Server 2017 en la breve descripción es que es un potente y sistema de gestión de bases de datos confiable que le permite construir sitios web livianos y su aplicación stop. Entonces esto es bastante bueno. Bastante decente es un lugar de partida decente. Si no tienes esa máquina de alta gama de especificaciones, sí tiene una máquina regular. Solo quieres empezar. Esta es una excelente opción. Hay otras adiciones que probablemente verías en tu investigación, pero si sigues este enlace, recortará todo ese ruido y todas las demás ediciones. Y podemos empezar con express para que puedas seguir adelante y esa descarga en Dinitia. Iniciar ese procedimiento Donald el entonces. Otro poco de software que nos interesa es el SQL Server Management Studio. Ahora el estudio de gestión será tu puerta de entrada para interactuar realmente con la base de datos , interrogando los datos sobre escribir lo que llamamos consultas en un idioma. SQL. Nos meteremos en todas esas cosas a su debido tiempo, pero por no, puedes seguir a esta chica una vez más. Está en la clase, apuntes sobre. Simplemente podemos tomar este botón de descarga para inicializar esta descarga, que puede tardar un tiempo. Es un archivo bastante grande, así que en cuanto eso no cargue se haga, volvemos a convocar. Y luego caminamos por ese proceso de instalación. Oigan, chicos, bienvenidos de nuevo. Sepan que nuestros no pierden nuestro acabado. Empezaremos instalando nuestro motor SQL Express. Por lo que solo hacemos clic en ese archivo de aislamiento, haga clic en ejecutar. Entonces seremos recibidos con esta pantalla de instalación podemos dar click. Personalidad básica le permitiría seleccionar ciertas características en esta etapa. No necesitamos estar haciendo eso. Podemos simplemente ir con básico. Podemos seguir adelante y aceptar los términos y condiciones que puedes leerlo si lo deseas. Si tienes otras ideas de las que quizá quieras cambiar a su director, lo contrario significa que usará como predeterminado. Y aquí se puede ver que de seis gigabytes, realmente sólo necesitamos 300 megabytes. Por lo que solo voy a seguir adelante y dar clic Instalar en esto puede tardar un tiempo, por lo que volverás a reunirse una vez que esto haya terminado. De acuerdo, así que al final de ese procedimiento de instalación, ves que fuiste, ya sabes, exitoso en hacer esta instalación, y luego te dan alguna información para darte un cómic y una cuerda. Entonces si querías desarrollar una aplicación encima de esta base de datos, entonces probablemente quieras prestar atención a esta parte. Pero eso no es realmente necesario ahora mismo. Y simplemente te dan los caminos para los fuegos de amor y otros pedacitos esenciales fuera de la aplicación. Otra parte esencial de este proceso de instalación, como se mencionó antes, es instalar la secuela Management Server studio al final de esta instalación de expertos adición , en realidad te darán una opción para ver SMS instalado. Y esto realmente sólo traerá a su navegador para navegar dedo del pie. Bueno, me imaginé este discurso por lo que el enlace a esta página ya está incluido en las notas de clase. Andi aquí. A partir de aquí, puedes conseguir un directo don 't Lord toe el estudio de gestión. Entonces si no lo hiciste antes, puedes simplemente seguir este enlace y conseguir que ese archivo ya lo tenga en Don't loaded here. Por lo que solo iniciaré esta instalación. Todo esto lanzará el instalador y realmente solo te dan un botón para hacer click, cual está instalado. Por supuesto, puedes cambiar esta ubicación si tienes otras ideas para el camino. De lo contrario puedes dejarlo como predeterminado en solo hacer clic en instalar. Por lo que esto también puede tardar un tiempo Así que volveremos a reunirse al final de este proceso. De acuerdo, así que nuestra instalación está terminada en Doll que tenemos que hacer es reinicia para continuar. Por lo que sólo podemos hacer eso rápidamente. Onda nosotros en el siguiente video empezaremos a ver cómo empezamos a unir todo. En qué se encuentra una base de datos. Por qué aprender esta habilidad es tan importante. Mantente atentos. 4. Crea una cuenta de GitHub: Oye, los chicos de este video estarán creando o levantando cuentas. Este es un paso realmente sencillo. Ponte de pie. Hace que sea muy fácil para nosotros inscribirnos. Sólo tienes que ir a que te salten de palma. Eso es G I T H u b dot c o m. obtener hub dot com on. Aterrizarás en este terreno de juego. No, desde aquí, si ya tienes una cuenta y puedes iniciar sesión y prácticamente puedes dejar de ver el video aquí si no lo haces, sin embargo, sin embargo, entonces el formulario del Senado está aquí mismo. Se puede hacer un poco de lectura. Basta con obtener una apreciación de para qué está el ghetto B. Y todo es un barco. Ellos sí tienen precios, por lo que sí ofrecen planes empresariales y planes de educación y diferentes planes para diferentes situaciones. Pero para el desarrollador solar para muy pequeños, ya sabes, equipos que tal vez no sean emprendedores nunca de lo que sí te dan ah lote gratis. Por lo que para inscribirte, solo necesitas poner un nombre de usuario en una dirección de correo electrónico y una contraseña en Una vez que hayas proporcionado todas esas cosas y siempre que tu nombre de usuario sea lo suficientemente único fuera de curso entonces haces clic. Date de alta en gueto el. Deberías estar dentro. Por lo que ya tengo una cuenta, Algunos ajustes reales Asignando viste a mis hermanos se están volviendo locos tratando de proporcionar información, así que solo voy a iniciar sesión con mi cuenta existente. Entonces eso es mi lo que puede usar. Estás usando a él o a e militaristas para iniciar sesión. Y la contraseña en aquí estoy. Este es mi foso de aterrizaje. Por lo que en realidad te dan, como, un sentido fuera de la comunidad. Es casi como un Facebook para desarrolladores. En cierta medida, puedes seguir a las personas una vez que estén siguiendo a las personas, ves sus actividades en la página de aterrizaje de la gripe. Puedes saltar a tu repositorio. Entonces, obviamente, si eres nuevo para levantarte, entonces no tendrías nada listado a un lado aquí. ¿ Qué? No soy noticia. He estado bastante ocupado. Um, poniendo contenido en bajar casi cualquier pequeño proyecto de mascota que empiece. Tengo un get over positivo, en realidad necesito pasar y limpiar esto en También, he tenido estudiantes que me agreguen a su descanso en el pasado. Eso que ya sabes, podríamos colaborar. A lo mejor están teniendo un problema y yo sólo podría verificar su cordón a través de los re posits. Muy todas esas cosas son, ya sabes, posibles a través de esta justa, poderosa herramienta. Pero una vez que has creado tus conos y estás firmado en Ondo bien, obviamente no verías lo que estoy viendo una vez más. Pero entonces eso completaría el signo de activo 5. Instalar y explorar PostMan: Oigan, chicos, en este video, vamos a estar instalando Cartero. No. Cartero es una excelente herramienta para la colaboración en las pruebas y validación de A P I en todas esas cosas maravillosas. Entonces es bastante fácil de instalar, serio? Sólo tienes que ir a post man dot com Cartero. Al igual que el tipo que entrega el cartero de correo dot com No sabes el arriba y fuera curso que eliges tu os, así que ten unas ventanas de 64 bits encendidas, entonces el don no arranca. Está bien, así que una vez que eso no sepa esto terminado, puedes seguir adelante a abrir el archivo de instalación Ejecutar el instalador son así que cuando esté terminado , bien verás una pantalla que te pide que te registres o que te identifiques o te ver la pantalla. De cualquier manera, si ves algo para iniciar sesión, te animaría a hacerlo En realidad ya lo tenía en mi máquina. Entonces sabes que el flujo puede no ser exactamente así, pero si sí ves que esta página aparece, entonces finalmente es Candace, Click the X, y puedes quitártela Onda. No estoy firmado de todos modos, Así que si sí ves la nuestra ciencia upstream luciendo algo como esto. Entonces sabes que solo puedes seguir adelante y crear una cuenta. Perdón por eso. Puedes crear otros conos con bastante facilidad usando una contraseña, o simplemente firmas con Google. Ahora me gusta simplemente iniciar sesión con Google on. El caso es que esa porción mantendrá un historial fuera de cada prueba que hayas hecho una vez que tengas una cuenta . Está bien, así que solo voy a seguir adelante e iniciar sesión con Google, acuerdo? Y una vez que hayas iniciado sesión, entonces sabes que puedes empezar a trabajar. Entonces sólo les voy a mostrar una muestra de lo que el cartero es capaz. En primer lugar, sólo voy a hacer con la oscuridad más porque están más así de cool on. Entonces voy a crear una nueva ventana de solicitud. Entonces usando este signo más, igual que cualquier navegador con los signos más en la parte superior, puedes engañar signo más, y te doy una nueva solicitud. Ahora, ya me adelanté y busqué algunos ojos de AP públicos ya que discutimos los del FBI básicamente están en nuestra puerta de entrada a su base de datos. Por lo que la gente tiene ojos P, varias personas de un PS y yo telefoneé a este sitio web. Cualquier dash FBI dot com Andi, sólo voy a estrangular de nuevo a la primera PC, puedo ver lo que tienen para ofrecer. Entonces desde la, ya sabes, la página de aterrizaje, seguro que tu puñado de público frente a un p yo así juntos solo puedes seguir adelante y dar click en uno ¿sabes, sapos probados. Entonces fui al Diccionario Oxford uno donde conseguiría una lista de idiomas para que te mostraran todos fuera de los puntos finales, ¿ verdad? Por lo que al construir fuera del FBI, se vincularon con los datos. Ten la seguridad de que tienen una chica común, pero luego tienen diferentes puntos finales. Daré diferentes bits de información justo en entonces Tienen diferentes métodos. Ponte posado en. Has puesto alguno de otros. Pero el hecho es que hay que conocer el tipo de solicitud. Tienes que conocer la u R L a través del cual puedes obtener esas solicitudes. Satisfecho? Tienes que saber si tienes que pasar en encabezados. Entonces aquí y necesito una clave de aplicaciones en Di di on. Después me muestran las respuestas. Entonces 200 significa OK en el inicial un ejemplo en Jason. De qué se trataría entonces esa respuesta. 44 significa no telefoneado. 500 necesita eso. Hay un error interno, por lo general con el servidor doméstico. No contigo. Correcto. Entonces para cuatro música, probablemente busques algo que no existe. 500 significa que el proveedor a p I tiene en error. Está bien, entonces mensaje de cualquier a p yo y yo queremos gratis gratis para ex FBI dot com. Perdón. Así que eché un vistazo más de cerca a cualquier AP y me doy cuenta de que todos esos ojos AP requieren que hubieras tenido en un conos ser, Ya sabes, Registré usuario Probablemente un usuario pagador fuera de esas plataformas se puede mirar a través. Ya ves, Instagram, tú también te ves, Google. La mayoría de esos están protegidos un PS, por lo que están usando cierta cantidad de seguridad a su alrededor en. Vamos a pasar por todas esas técnicas en los puntajes. Pero ahora mismo, sólo quería tener un triunfo rápido en la satisfacción de ver qué puede hacer el cartero y relevancia fuera de él. Correcto. Entonces telefoneé al libre cuatro x ocho p i dot com, ¿ verdad? Entiendes que eso está en gratis para ex FBI dot com on. Después iremos a la documentación. Por lo que esa página de aterrizaje es en realidad su demo fuera de ellos. Consumir los datos a través del aire p I que están exponiendo. ¿ Verdad? Por lo que tienen una base de datos el construido y el FBI en entonces el que están haciendo una causa seria fuera del FBI para mostrar la ciudad índice comercial en tu sobre nosotros la u y G BP etcétera, etcétera. Entonces si voy a la documentación en, me darán los términos fuera de uso. Dime cómo usarlo. Por lo que la documentación es muy, muy importante y vital a la hora de ap eyes y estaremos usando swagger. Um, Sawyer, Tú por qué toe r slash vocal Cuando lleguemos ahí, ya ves, pero se estará centrando en documentar sobre el FBI en gran medida también. Entonces a partir de aquí, seguramente que tienes el Eso es el dominio que los ojos AP hospedaron en la derecha. Entonces, medida que creces, ¿ no ves los diferentes tipos de funcionalidad que expusieron? Entonces consiguen datos de lectura, ¿verdad? Y luego me dicen la petición es una solicitud recibe on. Entonces tienes los puntos finales de los. Perdón, el Ural y el punto final. Eso es lo que necesita lucir en esto es una respuesta de muestra. Está bien. Y si miras a través, ves otro que puedes conseguir diferentes muelles. Entonces aquí mismo solo estás buscando el Euro USD uno, y te devuelven que los resultados de ese trimestre para ti. Um y luego en este año, puedes conseguir más de uno si quieres. Por lo que solo pones en ambos índices que te interesan como el parámetro en eso en punto . Muy bien, así que esa es una cadena de consulta para los valores en los que se ejecutan las canteras. Entonces esta es la respuesta de la A P I. Una vez que se ejecutan las consultas y se telefonean los datos No, los registros aéreos cuentan una buena historia porque entonces tú, si pasas a aparece que no existen en su sistema, entonces están diciéndote que lo harás. Es que si no pasas en ninguno, está terminando su requerido. Y si estás pasando algo que no está ahí, entonces verás en un récord 1000 y dos. Entonces tienes códigos de error estándar y tienes algunos aeropuertos que tú mismo me puedes. Entonces probemos esta muestra Alguien para probar el 1er 1 donde estoy sacando las ciudades Euro y U S. Entender copiar este enlace, que dijeron. Es así como se llega a los datos de este punto final sobre que voy a abrir un cartero sobre. Lo que voy a hacer es pegarlo dentro de esto que dice, entra Questi Worrell. Eso es lo que solo solicitamos derechos de autor en la URL. Por lo que pasé la petición. Estás yo en. Entonces el verbo aquí. Fregadero de mármol y obtener post. Has puesto parche. Elimina tienes un montón de ellos. Por lo que get generalmente se usa cuando estás esperando recuperar datos. ¿ Verdad? Entonces ponte, entonces libre para su AP, ¿eh? Bueno, cualquiera que sea esa petición Jarawas, ni una vez me comprometo. Recuerda, porque es su documentación en. Entonces voy a dar click. Enviar saber qué hace el cartero es imitar una llamada. Bueno, no realmente imitar en realidad realiza la llamada a que un punto p i n en luego recupera los datos en la respuesta. Entonces vemos aquí. Es posible que no esté tan bien formateada como está en la documentación. Por supuesto, están poniendo su mejor pie hacia adelante, pero es el mismo poco fuera de información que estamos recibiendo una re en. Nos estamos poniendo un tocón del tiempo. Estamos recibiendo 1/4 200. Si miras a la derecha, ves el estatus 200? De acuerdo, Entonces 200 es la respuesta universal para el viejo T. ¿Quieres conseguir a los 200 responsables? Todo está bien. Entonces los diferentes números tienen diferentes significados fuera peor, ¿verdad? El tiempo que me llevó la causa que este es un AP rápido me tomé en el Eso es lo que Medio segundo en el tamaño fuera de la respuesta, correcto, Siempre se puede formatear. Es para que esto puedas hacer click bonito o puedes ver crudo o previsualizar o visualizar. No estoy seguro de por qué. Bastante Oh, así es. Tengo que cambiar los cuatro meses. Entonces es bastante html. Entonces esto es para que podamos mirar en html pero el hecho de que esto pueda decir algo como XML mientras no es XML, dije html déjame rápido Jason, que está encendido. Ahí vamos. Entonces no, es bonito, Jason. Entonces no, se parece un poco más a, Oh, se está previendo en su documentación, ¿ verdad? Entonces cartero es muy útil cuando solo quieres probar, Um, cómo será la respuesta. Jason es el tipo de respuesta más utilizado. Bueno, estoy diciendo que vagamente me gusta usar las respuestas de Jason, pero la alternativa más cercana a eso sería XML en Dwell. Ya sabes, una vez que se devuelven los datos que el usuario espera, has documentado lo que puede esperar. Entonces estás Puedes sentirte seguro de que cualquiera puede usar tu a p i cuando sea necesario. Por lo que el cartero va a venir muy bien a medida que vayamos unos barcos desarrollando nuestro ap y solo queremos un validados que las respuestas se vean de la manera en que esperamos que los puntera. 6. Crear . Proyecto web principal en base: Oigan, chicos, bienvenidos de nuevo en este video. Lo que vamos a estar haciendo es configurar nuestro proyecto dot net core web ap I. Entonces eso fue una de las más llenas. Pero va a ser mucho más divertido de lo que tal vez hice el suyo propio. Entonces, empecemos. Entonces empecemos abriendo Visual Studio 2019 Community Edition Onda. Bueno, cuando llegues a esta pantalla de aterrizaje, vas a ver un hermoso sobre de lo que vas a ver esta pantalla de aterrizaje. Puede que no tengas ningún proyecto reciente haya estado trabajando en bastantes proyectos en los últimos tiempos, por lo que esta era podría estar vacía, pero el hecho es que quieres enfocarte en la sección de inicio er, por lo que queremos hacer es ir adelante y crear un nuevo proyecto en. Entonces llegamos a ver un montón fuera de plantillas ahora mismo a la izquierda yo plantillas recientes estas son templos han estado usando en los diversos proyectos que yo solo. Podrás tenerlo en blanco, y eso está bien. Quieres enfocarte una vez más hacia el lado derecho, donde podrás conseguir todas las plantillas, así que déjame ver si está claro. Está bien. Tan despejado despejó todos mis filtros. Y probablemente tengas algo que se parezca más a este Sophie one instaló estudio visual con las plantillas que había sugerido considerar la Web en las cosas del núcleo de red oscura que estará haciendo Entonces vamos a ver plantillas similares. Creo que básicamente tengo todo lo que visual studio tiene para ofrecer en mi máquina. Entonces puede que veas cosas en mi máquina que no tienes una tuya solo concéntrate en lo que veo que se requiere. Y si no tienes eso, entonces puedes, ya sabes, necesitas tomar algunas medidas correctivas. Si crees que estropeaste la instalación, siempre puedes desplazarte hasta el fondo en. Después verás instalar más herramientas y características, que en realidad relanzarán eso. Sabemos dónde eliges el pack. Mantente limpio, instala. Entonces si revisas el video de instalación en, ¿te das cuenta de esa ventana? Entonces podrías ver cuál te habrás perdido incluido, y luego actualizará visual studio para ti. De todos modos, lo que queremos enfocarnos hoy es en sp dot net core aplicación Web on. Vamos a estar usando C sharp, así que por favor asegúrate de que veas c agudo. Recibe un básico. Ves a alguien que es un básico. Eso no es lo que estaremos usando. Por favor, asegúrate de ver c afilado en. Después haces clic en ese click siguiente. Entonces te va a pedir que nombre el proyecto. Entonces voy a nombrar a esta librería. Dash E G I R. Así que estamos construyendo. Ya sabes, quieres hacer tus nombres de proyecto como posibilidad realmente ventas. ¿ Quieres volver a la próxima semana y preguntarte, O qué proyecto fue este? El nombre sólo debe contar la historia justo en Entonces. No necesitas dar click a nada más aquí a menos que quieras cambiarle un poco a tu hijo. Voy a turnar para cambiar mi ubicación. Puedes cambiar tu estado, esas cosas o a mis documentos o donde quieras el proyecto más rápido. Enfriar. Dejo ese en blanco encendido. Entonces podemos seguir adelante y dar click. Crear. Está bien. Entonces, no, llegamos a la parte donde nos están preguntando qué plantilla de punto net core ¿Te gustaría usar? No. Yo quiero que te pongas bien, quiero que prestes atención a esta parte porque me voy a poner un poco creativo en. Voy a explicar por qué voy a hacer con la forma en que lo estoy haciendo. Vs um los evidentes nosotros Correcto. Entonces lo que están preguntando aquí es ¿quieres un proyecto vacío con, ya sabes, tienes que poner, ya sabes, los archivos. ¿ Quieres un proyecto e p I? Considerando que esto es una e p a e p I, claro, que uno mira a la obvia, ¿ verdad? Preguntaron: ¿Quieres una aplicación web con páginas de afeitar? Quieren una aplicación web con lo tradicional más el controlador de vista Leo Oats. Y luego también puedes bootstrap, angular reaccionar, um, en plantillas Redux en la parte superior, fuera del estándar con la aplicación. No, solo pasé por todo eso solo para darte un adelanto sobre bien, AP, yo sería el obvio, pero esto es lo que queremos lograr. Queremos que nuestro AP, ojos yendo del dedo del pie tengan alguna autenticación de usuario porque, bueno, vimos cuando empezábamos cartero que ahí había viejo del FBI, y eso está caliente. Ya sabes, algunas claves son algunas usando imposibles terceros requisitos en. Queremos definitivamente tener usando los requisitos imposibles encima de donde el FBI, porque eso nos ayudará a aún evitar que personas maliciosas y no deseadas accedan a nuestra EPA. También nos va a vencer en el manejo de anhelos para personas que están bro zing nuestra librería en entonces la a p. necesitaré auténticamente todo eso decir que cuando vayamos con un p a um dot net score sí nos da opción para elegir qué autenticación que queremos. Por lo que por defecto, dirá que no hay autenticación. Si intentas cambiarlo, te da algunas opciones. Ninguna autenticación de Windows no es una opción, porque eso significa que has estado iniciando sesión con tus credenciales de Windows. Eso es mejor para Internet y no a su vez lo correcto, por lo que sería para uso interno. Cuentas laborales o escolares supondrían que esta persona está en los 3 65 conos en eso no sería ideal. Me gustaría que el poco sol y luego conos de usuario individual sería el mejor para usar. No obstante, por defecto, es asumiendo que eres un usuario en la nube, por lo que no tenemos ningún concepto Azura tener nada a través de lo que Siria probablemente no aprecie del todo. Lo que hace aquí está sobre este punto, y eso está bien. Pero mi punto es que esto es suponiendo que ya tienes algunos como tu funcionalidad configurada . Por lo que fui a renunciar al uso fuera de la autenticación y además estoy apagado para usaría fuera de la plantilla A P I encendido. Voy a ir a la plantilla de aplicación Web ahora mismo. Entonces también voy a ver las opciones de autenticación que tienen. Cómo usan conos individuales eléctricos. Ves que es diferente. Entonces sí, está viendo bien. Es ver el on para conectarse en existente usando la ropa. Todavía tengo esa opción, pero también tengo la opción fuera de tienda en el up, huesos en arriba. Entonces eso significa que puedo tener mi propia base de datos y almacenar a mis usuarios en mi base de datos en mi máquina o en mis instalaciones o donde quiera. Entonces eso es realmente lo que quiero. Entonces voy a elegir usuario individual son conos. Haga clic en Aceptar. Una vez más, estoy usando la aplicación Web. Realmente no importa cuál creo que este es más fácil porque es más fácil borrar lo que no queremos. Estoy a punto de mostrarte de lo que estoy hablando. ¿ Qué? El punto es esa divertida aplicación web, ¿verdad? No es un P I esta vez, sino aplicación web Muy bien, Andi. Columnas de usuario individual para la autenticación. Y luego fui a seguir adelante. Ah, y asegúrate de que tienes puntonet core 3.1 seleccionado arriba arriba, ¿ verdad? Por lo que habrías pasado por instalar abogado. Asegúrate porque tienes diferentes dot net core estaban siendo con 3.1, que es la última y más grande fuera de la tecnología de Microsoft, como en el momento fuera de la grabación fuera de este curso. Está bien, así que solo voy adelante y hago clic en crear, y entonces eso va a empezar a hacer algo de magia en visual studio. Esto podría tardar un rato, acuerdo? Y una vez hecho, entonces tenemos nuestro proyecto creado círculo a la izquierda. Bueno, a mi izquierda, tengo mi solución. Explorador. No, tengo un video donde vamos a pasar por extraño estudio y ver todas las carpetas y todas las cosas maravillosas, pero ¿no? No, mis exploradores sociales a la izquierda. En realidad es movible. Entonces por defecto, creo que verías su querido derecho. Pero no puedo fuera preferido a mi izquierda porque algún movimiento más natural para mí dedo del pie, ya sabes, encontrar lo que quiero a la izquierda y luego trabajar y luego, ya sabes, izquierda a derecha al menos en mis contextos occidentales levantar directa. Entonces esto es todo por crear nuestro proyecto. Cuando yo cuando regresemos, te mostraré alrededor de este proyecto nuestro propio, el interfiere lo que Es capaz de fuera. También te explicaré por qué habríamos ido con las páginas de afeitar en la autenticación a diferencia de la A p I y ninguna autenticación escribió en. Entonces todo esto tendrá sentido para ti. Pero, sabes, ya que estamos aquí, solo te voy a mostrar un adelanto. Entonces solo esta plantilla. Danos unos archivos. Tenemos edades. Entonces dentro de páginas fuera no hemos experimentado una página de privacidad en ¿Tenemos un archivo de inicio? Y sólo voy a hacer clic aquí en el botón de reproducción. Por lo que el playbook lanza la aplicación, entra en construir más comprobando si hay algún error fuera de curso, nos acaban de dar proyecto. No hay errores, Onda. Una vez que eso esté terminado, entonces veremos nuestro lanzamiento de Broza con nuestra aplicación. No hay aviso de que tenemos por defecto registro y un botón de inicio de sesión. Entonces si hubiéramos elegido la autenticación que no tendríamos este registro y anhelo. Pero al elegir individual un conos, tenemos los que tenemos frijol. Bueno, el proyecto se generó incluyente, fuera de todas las bibliotecas y funcionalidad requeridas para apoyar el registro en el cierre curso. Esto se puede extender y manipular agujero que queremos, y eso es exactamente lo que vamos a estar haciendo. Pero esta interfaz desaparecerá porque no necesitas interferencias para más de una p I. Y aún no lo es. Andi, te explicaré todo eso en el próximo video on. Empezaremos a construir en algo donde se parezca más a cómo se espera que tenga un FBI . En un poco más sensato 7. Tour de la estructura y los archivos del proyecto y: Oigan, chicos, Bienvenidos de nuevo en este video vamos a estar tomando un recorrido fuera de nuestra estructura más completa y dual generalmente fuera de estudio visual. Ahora para empezar. Quieres toe open visual studio que luego te llevará a esta pantalla de aterrizaje donde pueda conocer, Adelante y abre o crea un nuevo proyecto en el lado izquierdo. Verás tus proyectos listados dedo del pie en esa lista. ¿ Verdad? Por lo que nuestro proyecto es tanto tienda AP. Puedo hacer clic en eso y luego lanzará la ventana media. Tememos Solution Explorer y todos tus archivos. No, mi solución experimentó la izquierda por defecto. Creo que el tuyo se acabó a la derecha. Pero entonces sabes que son documentos en DACA pico y lo haría alrededor del campamento en él en UNP en él destacó todas estas cosas maravillosas. Para que lo sepas, puedes hacer de esta interfaz tu o como sea te sientas cómodo viendo tus cosas. Puedes dragón dejarlo caer en cualquier lugar cambiar el tamaño a voluntad en ese entonces. En la solución Explorer , te muestra todos tus archivos de proyecto. Por lo que tienes la ruta www la cual va a tener archivos estáticos incluso para tener áreas que suelen contener es algunas páginas relacionadas con la identidad, como en, ya sabes, manejo de usuarios en, ya sabes, iniciar sesión, registrar cualquier cosa con la autenticación de usuario y la gestión estaba dentro de esta frontera de áreas por defecto . Tienes datos donde guardas todas tus clases relacionadas con datos y 100 migraciones. De verdad me estoy desnatando porque sólo quiero que tengas un aprecio de lo que estás viendo. Si esta es tu primera vez justa. Muy bien, Entonces tienes páginas. No, porque tenemos una plantilla de maquinilla de afeitar trabajando ahí. Algunas cosas que realmente simplemente no necesitamos ya que vamos a estar construyendo una A p. I. Está bien. Entonces, uh, como dije en el video anterior, la razón por la que elegí la maquinilla de afeitar o hubiera elegido a NBC es para que pudiéramos aprovechar el default. Um, autenticación de usuario para los conos A individuales características. Entonces al hacer eso, el proyecto fue recreado con algunas cosas por defecto que no tendría que pasar tiempo construyendo nuevo. Pero luego también otras cosas por defecto que en realidad simplemente no necesitamos. Vamos a dedicar tiempo a arreglar el proyecto, estamos borrando lo que no queremos y recompensando lo que sí queremos. Pero quiero que también tengan un aprecio por lo que punto net core realmente les permite seguir adelante antes de meterme en los ajustes a realizar. También tenemos la configuración up que Jason si haces clic en eso, es ah, archivo de conflicto, archivo de conflicto, que te muestra algunas configuraciones por defecto en la cadena de conexión a las configuraciones de registro de base de datos y muchas iniciaciones completas. Entonces no estoy llegando a estar una vez más en ¿Tienes el programa no nos ven? Que es el archivo predeterminado que se ejecuta cada vez que haces clic en el juego o cada vez que se inicia tu aplicación. El programa que CS es como el archivo inicial Isar y luego último. Pero de ninguna manera menos importante tenemos nuestra puesta en marcha s nazis, que básicamente encarna lo que llamamos el medio eran así que muchas configuraciones suceden aquí mucho fuera de las cosas por defecto que necesitan ser incluidas en la puesta en marcha literalmente. Por eso se inició que CS todas esas cosas se metan en este archivo. No, este incendio requerirá alguna modificación por parte de nosotros para conseguir que un PR listo ahora para ser justo , si hemos elegido la A P a template, entonces no necesitaríamos cumplir con estas modificaciones. Pero elegí plantillas de razón. Por lo que voy a despegar algunas de las funciones relacionadas con la razón y poner algunas funciones relacionadas con P I . Otra razón por la que lo toma en este viaje es que si no tienes un entendimiento completo fuera lo que es dotnet court, porque si estuvieras usando dotnet framework, sé que estás haciendo la transición a dot net core. A veces se relaciona de manera muy abstracta. Cuáles son los servicios y qué exactamente necesita pasar para que la aplicación de núcleo dominante se abra corriendo así que dot net core es como una línea de base. Causa que es una serie de funciones, un número fuera de las capacidades fuera de la caja con ellas. función de su contexto, va a tener ciertas capacidades incluidas por defecto el. Entonces, si quieres más, puedes agregarlas en función de tus exponentes cunt de nuevo. Entonces, dentro de nuestro contexto, creamos una aplicación de afeitar usando dotnet court. Entonces por defecto, sin un número fuera de la maquinilla , de verdad , habría , um, hijos telefónicos incluidos en el inicio de s nazis para que podamos empezar Canadá y 35. Vemos que estamos agregando un resultado páginas podemos seguir y vemos que te tenemos archivos estáticos en sus páginas de mop Reza. Por lo que estas son ciertas pequeñas configuraciones que iban a estar cambiando, probablemente para quitar porque no necesitamos funciones relacionadas con la maquinilla de afeitar. De verdad quiero un P I funciones relacionadas. Entonces es tan fácil como borrar lo que no queremos cambiar tu pensamiento. Y ese es el ajuste literal para cambiar el comportamiento fuera de toda nuestra aplicación central dominante . Y por eso no hacer la guerra es tan cool. Entonces déjame solo darte una carga de las modificaciones que vamos a estar reuniendo recién . Vamos a estar cambiando algunas de las configuraciones aquí en el archivo sobresaliente. Entonces vamos a estar borrando ciertos Fuller que no queremos y en crear carpetas para que podamos carpetas y otros archivos que sean específicos del FBI para que podamos empezar esta fiesta. Entonces, empecemos. Por lo que en la línea 35. Entonces voy a dejar todas estas configuraciones porque estas están diciendo que cuando se inicia la aplicación, quiero usar un contexto de DVD usando SQL Server Onda Um F core o en diferente núcleo de trabajo porque es un número de conectores para otras bases de datos se puede utilizar SQL Server. También puedes usar mi SQL on. Tienes bastantes conectores disponibles, así que estamos usando SQL Server porque tenemos una base de datos de servidor SQL en, estaremos usando la cadena de conexión predeterminada. También voy a modificar lo que también vamos a usar la identidad por defecto. Por lo que eso significa que las bibliotecas de autenticación de uso predeterminado. Desafortunadamente, eso habría incluido cuando creamos los proyectos esa opción de autenticación de conos de usuario individual . Sí, es todo eso es una especie de bootstrap en estas dos llamadas, ¿ verdad? Entonces estamos diciendo que estamos usando la base de datos que se llama a este té para conexión más adelante . Vamos a cambiar eso en. Estaremos usando ese contexto BB. Los agujeros sobre las necesidades de almacenamiento de datos de autenticación de usuarios, ¿verdad? Eso es lo que esto está diciendo. Pero entonces la parte donde dice arterias o páginas, realmente no me interesan las arterias de páginas. A mí me interesa el controlador, así que tienes páginas Reza cualquier mitad NBC y vemos el mar dice para los controladores por lo que los ojos AP suelen estar basados en la funcionalidad del controlador. Entonces voy a estar cambiando esto de baterías de páginas toe controladores Ada. Entonces le estoy diciendo a la aplicación que voy a estar usando controladores para, ya sabes, lo que sea que necesito estar haciendo a continuación, vamos a estar cambiando de ti Archivos estáticos alguien para quitarte archivos estáticos porque Realmente no necesito archivos estáticos en mi a p I archivos estáticos son lo vas a echar a perder cuando tengas, ya sabes, javascript y CSS. Esos archivos que se requieren para, ya sabes, estilizar. No los necesito porque no va a pasar un FBI. Interfiere al menos los ojos AP. Te llamaban sentada encima de una base de datos, ¿verdad? Por lo que estoy quitando el uso de archivos estáticos en también voy dedo del pie cambio de línea 63 a decir endpoints que mop controladores. Está bien, entonces, ¿cualquier cosa que dijera navaja, lo estoy cambiando, Controladores Toto? No, con todo eso, no podemos activar una compilación, y eso es manteniendo el turno de control en B. Eso es un teclado. Cortes de tiburón. Alternativamente, puedes simplemente ir al elemento de menú build on click build solution, que indicará el mismo tiburón teclado. ¿ Qué? Para ti. Entonces, cualquiera que sea la opción que prefieras, puedes hacerlo no. Está bien, Así que este edificio está terminado en Lo que voy a hacer es el plomo, algunos fuera de las carpetas que realmente no necesitamos. Entonces voy a empezar con la ruta www. Entonces si miro en rutinas www, verán lo que veremos. CSS gs lib. Correcto. Entonces, como dije, todos los archivos estáticos que se requieren para,ya sabes, ya sabes, estilo javascript todas esas cosas maravillosas para la interfaz de usuario se almacenarían en la ruta W W . Ahora, acabo de quitar el dedo del pie necesidad, tengo archivos estáticos. Entonces realmente no necesito raíces www. Voy a quitar esto, así que solo hago clic en él. Presionar borrar. Dirá que todo será borrado permanentemente, digo. Está bien, déjalo seguir. Está bien. Siguiente arriba. Tenemos áreas que no necesitamos era. Entonces, como dije, las áreas vienen con algunas cosas de identidad, pero no es la funcionalidad identitaria, ¿ verdad? Por lo que puedo quitar áreas on. Simplemente me aferro al control en las páginas de clic también para que podamos eliminar áreas en las páginas. Por lo que haciendo click en, luego sosténgalo en control y tomando otro. Estoy seleccionando dos a la vez y luego presiono eliminar así que solo eliminé todo. Una vez en tu proyecto se está volviendo un poco más delgado. Entonces sabes que es cortar, aunque decide así de verdad? En realidad, un e p. Un proyecto no tiene que tener mucho descuento $4 ¿verdad? Porque una vez más, realmente sólo tenemos expedientes judiciales que están manipulando, entregando peticiones y manipulando teatro para dar respuestas. Correcto. Pero a fin de manejar las peticiones, lo que necesitamos son controladores, verdad? Entonces voy dedo del pie click derecho en mi proyecto. Por lo que tenemos la solución en la parte superior. Pero ahí estaba el fuego del proyecto abajo en. Voy a dar click derecho en. Después fui a ir a nuevo o lo siento, sumar, luego primero ellos sin una carpeta nueva. Entonces digamos agregar carpeta y luego el completo voy a tener controladores. No, Mi sugerencia para ti es que si me ves bien C mayúscula por algo, también escribes mayúscula C de tu lado. Muchas de las veces que estuvo dedicando tiempo depurando cosas solo para darse cuenta de que ya sabes, tenías un poco común donde debería haber sido capital y viceversa. Por lo que siempre trataré de mantener buenos estándares de codificación en def. Tú sólo, ya sabes, sí sigues la convención de que estoy sugiriendo que no debería tener ningún problema. Entonces tenemos una carpeta llamada Controladores? No. Nuestra carpeta de controladores sostendrá incendios de clase especial o archivo de corte especial Literalmente llamado controladores y controladores hacen exactamente eso. Controlan el flujo de la aplicación. Por lo que nuestra solicitud entrará en una dirección que al control recogerá. Entonces dirá: OK, OK, aquí está nuestra respuesta para su solicitud. Entonces lo primero que voy a hacer nuestra próxima cosa que voy a hacer u otra es raqueta. Mi controlador arde. Ve. No hagas Ida en eso. Vamos a añadir un nuevo controlador. ¿ Ver? Debería estar en la parte superior. Si no ves controlador de lo que puedes hacer clic en nuevo elemento, aparecerá el mismo que son caja. ¿ Qué? Simplemente pienso Nuevo artículo Porque volveré al mismo cualquier artículo. Entonces, si creas nuevo elemento, ves la clase de controlador encendido entonces el nombre predeterminado. También lo. Perdón. Ya ves, clase Controller y ves una clase de controlador P I o lo que realmente queremos es un controlador A P I . Está bien, así que eso si tuvieras que ir a nuevo artículo. Voy a cancelar y me fui a ir con el dedo nuevo controlador. Por lo que hago click. Agregar controlador Goto encendido. Entonces este dinero sale donde me está dando opciones más puntiagudas. Por lo que veré vacío un controlador del FBI. Podría controlar con opciones de lectura y escritura. Andi par controlador con opciones usando en diferente trabajo duro. Por lo que ahora mismo, sólo voy a elegir un controlador P I. Vacío. Está bien, vamos. Entonces voy a dar click, Agregar, entonces me va a preguntar, ¿qué nombre quiero darle? Entonces el nombre por defecto va a ser por defecto, pero voy a llamarlo casa, alguien que diga Control domiciliario. Y ese es el nombre de mi primer controlador AP I encendido. Después hago clic en agregar, y ha sido para pasar algún tiempo. Andamios carga el controlador. Muy bien, entonces no, nuestro controlador se hace de ser rascado y andamios es solo el término técnico. Para ver auto generado bastante bien. Entonces cuando consigamos este controlador. Es decir, es un sencillo venir a ver expediente judicial afilado. Tenemos estamos usando declaraciones en la parte superior o espacio de nombres, que es nuestros proyectos. Nombra puntos, el nombre más completo. Correcto. Entonces tenemos el proyecto encendido, luego la carpeta. Justo en. Entonces tenemos las raíces. Entonces el más grosero diciéndonos que para llegar a este controlador, tenemos que teclear, Ya sabes, las chicas básicas encendidas, luego slash ap le corté el nombre fuera del control. Está bien, Así que para empezar de nuevo, controlador se fueron a creo llamará una acción. Entonces en acción suele ser lo que maneja la solicitud viniendo de, ya sabes, algunas aplicaciones de terceros. Por lo que en real tendría que ser un público sobre. Es un teléfono mostrado, correcto, correcto, Así que tenemos el tipo de devolución. En realidad resulta justo en. Entonces le damos un nombre. En este caso, voy a llamar Índice porque índice es como un camino por defecto para el primero por favor, se calienta cuando se llama. Ciertos sitios web están con ur else on. Entonces lo que vamos a hacer dentro de esta acción es devolver un resultado. Entonces solo voy a ver un retorno y luego con los diferentes números del FBI representan cosas diferentes y el mejor número que puedes conseguir cuando intentas algo en un e p a es el número 200. Eso significa que todo está bien. El cool es que dot net nos da funciones que perdí el retorno. Estos, um, respuesta es bastante fácil así. Yo sólo diría OK, en esto es una función. Entonces si miras la inteligencia, es decir que crea un objeto de resultado bien que produce un estado vacío anotado 200 ¿verdad? Entonces si solo dijera regresar bien, solo devolvería 200 Pero quiero devolver un mensaje de su en realidad solo puedo incluir datos dentro del teléfono que se muestra a la derecha. Por lo que hay una sobrecarga donde puede incluir en el objeto. Entonces si lo tengo, quiero regresar con el estatus. De acuerdo, entonces puedo hacer eso. Así que sólo di, hola mundo. Él va a regresar. Empieza 200 Orochi con el texto. Hola mundo. Para que se quede esto para dar una vuelta. Por lo que sólo voy a hacer clic en el botón de reproducción en. Se va a entrar en compilación con Misha no tienen errores de sintaxis y se va a dar vuelta versión ligera apagado. I s encendido entonces Probablemente el navegador. Muy bien, así que cuando tu navegador se cargue, probablemente van a estar viendo un estado para un cuatro. Y el http llamó por un para mí, no es teléfono. Lo que está diciendo es que no encontró ningún pase por defecto ni ningún contenido para devolver en este pot por defecto. Entonces esta es nuestra niñita. Cada vez que entramos en barco amarrado, vamos a conseguir algún anfitrión local el colon en algún puerto. Andi Bueno, generalmente no funciona a menos que estés en B, pero más en donde en el barquero No está funcionando, Um, en. Entonces eso es una especie de anomalía o motivo de preocupación, ¿ verdad? Entonces lo que pasa es que si miras de cerca, decía que para llegar al controlador, necesitamos decir slash ap I slash controller. Entonces sí tenemos nuestra base. Tú lo eres. Yo sé cuál está bien. A manguera colon 4432 Déjame revelar en tapas necesarias en lo que tenemos que hacer es decir, slash ap I slash Y luego dijo, Controlador y corchetes. Entonces cuando se trata de un inserto de control, lo que realmente quiso decir fue recortar el nombre del controlador, que llamamos casa. Entonces cuando haga eso, veremos a Hello World siendo devuelto. Pero ahí no es exactamente donde quiero que probemos y validemos esto. Recuerda, es un FBI. Por lo que el FBI puede estar regresando todo tipo de cosas que pueden estar regresando. Al menos pueden estar devolviendo algunos objetos de Jason, cosas así. Hola Mundo es solo una pareja barata para que podamos tener una victoria rápida por el tiempo que dure esta lección. Pero sólo la parte superior todo apagado. Yo quiero que usemos cartero. Entonces he pasado aquí, y lo que voy a hacer es crear una nueva solicitud. Está bien, así que sólo voy a reemplazarlo por el mismo camino en que lo puse en cartero. Es que me pongo, Entonces hago clic en enviar. Entonces obtenemos la misma respuesta. Pequeño mundo, ni la razón que te muestre en cartero somos nosotros porque fuera del estatus. Por lo que no se ve eso en el Broza. Al menos no está fácilmente disponible para ti, pero verás el estatus 200. Está bien, siendo devuelto. Está bien. Está bien. Alguien que termine esta lección aquí mismo. Creo que ya hemos hecho suficiente. Reorganizamos las carpetas para ser más conducentes relojes del dedo del pie adquiridos para o un proyecto P I para recubrir toda la pelea todos los fans estáticos y clasifica realmente no necesito. Creamos un controlador el. Creamos nuestra primera opción donde probamos al FBI con cartero, solo para asegurarnos de que estamos obteniendo los resultados correctos de la acción. Entonces en nuestra próxima lección continuarán algunas configuraciones a medida que empecemos, dedo del pie, ya sabes, traer todo este FBI a remolque Realidad. 8. Configuración y uso de Swagger UI: Hey chicos, bienvenidos de nuevo en esta ternera vamos a estar revisando, configurando y usando más fuerte. En fin, ahora he mencionado antes la importancia de tener ojos AP bien documentados. Ellas sí actúan como guía a personas que consumían el A P. A. On git les dice cómo se usa, qué llamar cuando quieren. Qué tipo de información sobre DSO Swagger hace un excelente trabajo, ya sabes, crear documentos nos están ayudando a crear documentos. De hecho, nos llevó el auto generar documentos basados en lo que hemos desarrollado. Y así vamos a usar este tiempo del dedo del pie, integrarlo a nuestro FBI. Ahora mismo sólo tenemos uno en el punto, pero entonces, ya sabes que pondremos en la lucha. Yo lo miro con uno en punto y luego meto otra cosa y luego solo miro todo solo se genera para nosotros. Por lo que para empezar, tenemos que incluir hebilla de swash. Tu hebilla swash es swagger. Es dotnet library Más o menos para hacer eso, vamos a usar una herramienta llamadas que obtienes, así que solo hacemos clic derecho en nuestro proyecto. Después bajamos a gestionar nuevos paquetes get. Una vez que se señale, es una ventana que nos va a mostrar un montón de paquetes de paquetes son como bibliotecas que tienen funcionalidad, ¿no? Entonces no sabes qué paquete para una cosa en particular y obtienes un paquete de funciones y funcionalidad más o menos así que verás aquí estas son todas las que ya están instaladas. Por lo que queremos a Boro porque quieres a los que no son instaladores lo on. Te aconsejo que hagas clic en el prelanzamiento incluir solo en caso de que no se incluya la versión que estás usando la versión de donna corps que estás usando la versión fuera de la biblioteca . Si no haces clic, incluye la preliberación. Quieren la biblioteca más reciente para la última versión de ese núcleo. De todos modos, vamos a seguir adelante y buscar. Busco a Boco. Entonces eso es S W A s lavado Boco. Está bien, Y entonces una vez que hagamos esa búsqueda veremos algunos resultados y no vamos a hacer Lord los por su alimentación puntean núcleo neto para que eso sean estos tres años, ¿ verdad? Estos son sólo queríamos un slugger un Sargento. Yo quiero fanfarronear. Tú. ¿ Por qué? Entonces no sabes qué es Solo necesitas pasar el rato por encima de la línea y verás la flecha abajo , ¿ verdad? C para dormir esa flecha abajo, y luego se conectará a los servidores, te pido que aceptes algo encendido. Entonces dejas que haga lo suyo. Y luego cuando se instaló con éxito, ¿ves esa flecha verde? Entonces hemos conseguido esa. Consigamos el siguiente, que es slugger. Gin. Simplemente no conozco esa. Que su haga lo suyo. Muy bien, entonces tenemos esa única herramienta puesta. Entonces la última sería fanfarronada. Tú. ¿ Por qué? Entonces simplemente no sabemos esa también. Ahora, después de que no lo hayamos cargado, todas esas bibliotecas. Si volvemos a la puñalada instalada, los verían listados ahí. Fuera de curso. quiere despejar la búsqueda para que puedan ver todo fuera de las bibliotecas que, ya sabes, tienen cortesía fuera nueva conseguir las que la flecha azul arriba están arriba. Es así que quiero decir, puedes venir al talón apropiado. Se puede seleccionar todo y él puede actualizar, pero yo no voy a hacer eso a veces fuera de su requieren que hagas algunos cambios importantes pobres . Y no voy a pasar por eso en este video o en este, ya sabes lección, para que podamos dejar eso hasta más tarde. Pero lo más importante es que tenemos instalada hebilla swash y solo solíamos llegar por primera vez de todos modos, pasando. Lo siguiente que queremos hacer es configurar alguna configuración. Entonces como habríamos discutido, prepárate para esto arranca sobre mangueras de archivo CS, un montón off con figuración e inicializar er's que se necesitan cuando arranca nuestro Danek o aplicación. Entonces, claro que quieres incluir o nuevo servicio o nuestra nueva biblioteca, que es más fuerte. R slash vocal, um, en nuestro medio ¿dónde? Entonces es entonces cuando se inicia la aplicación. Es consciente de que este es un servicio que necesita ser incluido, alguien para empezar a presentarlo después de haber inicializado la base de datos. Pero antes de inicializar mis controladores por lo que a veces el pedido importa cuando estás inicializando servicios. A veces no quieres inicializar este servicio antes de ese. Normalmente dejo esos controles para el fin porque para el momento de agregar los controladores. Todo lo demás debió haber estado en su lugar. No lo sé si espero que tenga sentido. Por lo que yo solo digo siempre que el orden importa si no te puedes molestar. ¿ El orden parece dedo del pie, ya sabes, difícil de entender. Simplemente deja a estos controladores uno para el fin. Bastante. Está bien, Así que agreguemos servicio de futbol. Entonces, para empezar, vamos a decir que los servicios se ponen en punto. Entonces es posible que no veas una lista del anuncio faltante en. Después de abusos, Swagger. Ahí vamos. Agrega swagger Jensen mediante la inclusión de nuestras, um, bibliotecas. Ya sabes cómo este nuevo método de extensión. Por lo que agrega ginebra de futbol. Entonces vamos a tener que poner algo así como una expresión de herida. Entonces ya veremos hablar. ¿ Has visto en, entonces? Una flecha, Derecha. Um, Andi, abre y cierra. Crea una brisa. Entonces eso es sólo el inicio. No estamos terminados en absoluto. Por lo que servicios que anuncio vio abierto Gourgeon. Prepárate, entonces. Eres tu expresión lambda. Estás hablando con la flecha. Entonces ábrela. Perdido. Realmente brisa cerca brisa para paréntesis y luego cínica. Y así, ¿dónde empezar a llenar el interior de los tirantes rizados? No. Con alguna información necesaria para que sargento pueda operar. Entonces solo estoy rompiendo la línea y estoy con la parte superior para que se vea vencida. Está bien en. Entonces voy a empezar con mi expresión, que es el mar o la tierra. Un token. ¿ Verías a ese slugger Onda? No. Está bien, en ese entonces, Abrir. Prepárate. Entonces me voy a mandar llamar y otra vez. Entonces solo lo estoy haciendo tierra por líneas para que, ya sabes, no se mezcle para cuando intentes producirlo. Entonces vamos a empezar a sentir algo de información sobre saga. Entonces si miro ser los parámetros de función para las formas doc de futbol y es pedir un nombre en, entonces es pedir abrir un P I info. De acuerdo, entonces el nombre que voy a darle es V uno, como en la versión uno, como en la versión uno, esta es la primera versión del FBI, por lo que el tocado de futbol realmente sí ayuda con la versión. Ya sabes, cuando tienes más de una versiones fuera del juego, tal vez en la versión de la BBC tengo esos patrocinadores y una versión gratuita y de pago. En realidad puedes tener a Dom. El futbol genera documentos separados bestia sobre eso. Pero todo depende de tu configuración. Por lo que esta es la primera versión del par que se preparaban para construir. Entonces V uno encendido, Entonces voy a ver un mediodía abierto FBI en su totalidad. Perdón. El tipo de su abrir un p estoy lleno justo en entonces. Este es un nuevo a p a in para abrir un b a in para objeto. Pero yo sólo estoy ido a inicializarlo aquí en luego dentro fuera del limitador almacena este paréntesis que luego dentro de abrir a b a in para estos son los puntos de datos ajustados control y espacio Y muéstrame todos los puntos de datos que soy mucho filo adentro off esto para que pueda ver un título es igual y quiero llamarlo mi librería 80 i para un lunático, todo el mi que se ve un poco demasiado personal. Estamos tratando de, ya sabes, prepararnos para el mundo profesional. Por lo que librería una p I en luego versión coma. Andi, puedo decir que la versión es igual dedo del pie V uno. Está bien, Pero cuando veas que tienes un gnomo fuera de todas las cosas que podías sentir él solo podía dedo del pie coma. Se puede poner en la información de contacto, más fuera de una descripción. Siete poniendo guerra por descripción. Entonces sólo voy a frenar la línea para que no se vea demasiado agitada. Amigos. Oh, nuestro enemigo. Sí. A veces me obsesiono con estas cosas. Muy bien, Sam, esta línea de ruptura, tratando de que todo parezca necesita. Entonces no escribas conmigo todavía. Paseos que un poco mejor en. Entonces lo siguiente que iba a poner en era descripción en entonces descripción. Esto es sobre educativo para una librería. Está bien, entonces ese es el paso uno para armar a nuestro slugger. Por lo que agregamos el servicio para el futbol. Ya sabes, generación de documentos. Bastante. Eso es lo que este sólo está viendo. Entonces le estamos diciendo que al generar el documento, estos son algunos valores estáticos que necesitamos tener. Entonces ese es un título fuera del documento. El versión ing fuera del papel y la documentación Onda la descripción. Muy bien, entonces a continuación, vamos a ir por encima de nuestro método de configuración. Entonces ese fue el método de servicios conficker, ¿verdad? Eso se llama comprador del tiempo de ejecución. No, vamos a tontear con el conficker, que también se ponen erudito a tiempo. Y se utiliza para el ducto de solicitud TTP. Entonces lo primero que voy a agregar para esta sección on Voy a hacer justo debajo esta afirmación es arriba Que use slugger. Está bien, abre Y esos aparatos ortopédicos. Entonces me estoy viendo con terrible para correr estos te jadean. Entonces hay otra tierra que cualquiera que tenga que decir arriba que use jadeo. A ti me acuerdo de eso. No sabemos que tres bibliotecas, ¿verdad? Entonces, Swagger, Jen era el servicio. Digo, perezoso, yo No, estoy diciendo que te jadeas. ¿ Por qué? Que es, bueno, nosotros abreviamos de interfaz de usuario. Y entonces éste requiere un poco fuera de la expresión lambda como similar a lo que acabamos de ver. Entonces tengo que abrir y cerrar paréntesis. Ponga mi alarma, la plática y estoy usando. Ves, puedes usar casi todo lo que quieras aquí. Dios ve, empieza para la configuración en mi cabeza. Pero no te estoy viendo más. Verás, um, la flecha encendida luego abierta incluye brisa encendida, luego semi colon. Por lo que dentro de fuera las llaves iban a decir si dot slugger endpoints derechos para ver inteligencia es hablar exactamente lo que queremos hacer. Está bien, Andi, Después de decir, ve a ese chupón en puntos dentro de esto y vas a tener que escribir esto muy similar. Todo lo estoy escribiendo. Es donde sin antes slash slugger cess otra vez, v una slash Slager dot j, hijo. De acuerdo, así que eso es probablemente una cosa a la que te refieres, es a cuánto intervalo de margen de deseo de teclear. Y probablemente lo hagas. Probablemente puedas hacerlo un poco más fácil, pero solo podemos dejarlo así bajo espontaneidad, um, y luego coma en luego el nombre. Entonces soy sólo mento reutilizar el título que tenía aparecer en Ponlo como el nombre aquí. Está bien, entonces, no, le hemos dicho a nuestra aplicación que pretendemos usar slugger. Entonces por favor, Señor, estas, um, bibliotecas cuando la aplicación se ejecuta por si acaso. ¿ Todo bien? No. Intentemos ver qué diferencia hace cuando voy a depurar orbe amarrado Roeser cargará , vaya a la 40 seguro. Pero entonces quiero ver la documentación futbolística para poder ver slash en el mismo camino que acabo de poner, que era slugger slash v one slash slugger, no J hijo. Entonces cuando hago eso Muy bien. Entonces me estoy dando esta flecha, y sí conozco esposa. Yo sí sé por qué. Entonces voy a volver a mis proyectos. De acuerdo, Entonces el problema que acaba de saber fue porque fuera del controlador que tengo para el FBI. Entonces lo que pasa es que si tienes una acción pública en un A p yo control de, pero no le has dado ningún atributos de descanso y pronto nos metemos en otro descanso. En realidad, terrible. El punto es que solo está ahí. En realidad va a valerse, competir con el jadeo. Está bien, así que esto es lo que vamos a hacer. Voy a eliminar este controlador. ¿ Todo bien? Entonces en casa, control de esto fue nuestro experimento, solo para asegurarnos de que nuestra gente estaba trabajando, así que pensamos que lo haría. Entonces sólo voy a borrarlo. Entonces voy a agregar uno nuevo, así que solo voy a hacer click derecho click I goto controller on. Entonces esta vez vamos a decir que quiero un controlador AP con acciones de lectura correcta. Entonces éste nos va a dar, como una plantilla? No. Entonces no es rubia. Control de fuerza un relleno. Se trata de una plantilla. ¿ Verdad? Por lo que solo hago clic en agregar Voy a llamar a este. Uh, bueno, supongo que puedo llamarlo Control Domicilio otra vez. Por lo que solo estoy recreando casa controlable con cable generado auto. Está bien. Y aquí vamos. Entonces se puede ver que este es un poco más colorido, un poco más animado que el anterior sobre lo que estaba diciendo del resto atributos serían estos, um atributos datos anotaciones que son una notaciones que se ponen por encima de la acción. Entonces esto es lo que me sale dicho, descanso verbo. Yo no lo soy. Obtengo esos apoyos. Ese es otro ver put. Elimina Esos son todos verbos de muñeca. Está bien, así que esos son los atributos de muñeca de los que están hablando, Así que voy a volver a intentarlo. Voy a volver a dedicarme más, sin embargo, hacer cualquier otro cambio, pero recrear mi controlador sólo voy a volver a depurar más bien. Y estamos de vuelta Attar por cuatro. Entonces déjame intentarlo otra vez. Slash swagger slash v one slager dot j. hijo, cuando hago eso no, estás viendo bien, alguna documentación. Pero entonces esto obviamente no es muy descifrable. Si nunca antes hubieras visto a Jason, esto no tendría sentido para ti. Si conoces a Jason, entonces todavía no significa qué sentido hace. No. Tienes que sentarte y estudiarlo. Entonces para llegar al verdadero jadeo te yo, la hermosa de interfaz de usuario, el hermoso documento del que estamos hablando de barcos. Simplemente te quitarías todo y c slash Slager. Por lo que es anfitrión local colon aeropuerto slash swagger. Y una vez que hagas eso, redirigirá en índice dot html con unos documentos muy bien generados mostrándote todo fuera tu en puntos. Señorita, si puedo bajar un poco esto y traerlo a un lado Bueno, tenemos en estudio visual, ¿ verdad? Por lo que se puede ver la librería de valores estáticos. Ap I. Se trata de un educativo un par para una librería. Esa es la descripción, Appleton. Um, ya sabes, tenemos fuerza. Bueno, ponte bien. Así que ten la función get. Volvería todos los valores en, entonces. Eso es teléfono en un p slash casa. Diga ver, dice que lo consigues ser una barra en casa puede perforar hacia abajo en ella y te muestra, um, algunos, ya sabes, los esquemas son barcos, la función. lo que fuera de curso, esto se puede conseguir mucho más avanzado es un muy básico y se generó auto a partir de básicamente nada. Entonces, ya sabes, es un buen paso en la dirección correcta. También muestran que alguna vez llegar a donde se puede ver un ps slash home slash i D, que es un método que tenemos aquí en. Entonces si indagamos en eso, te muestra la descripción fuera del parlamento y que espera en las posibles respuestas. Está bien, así que no estoy del todo listo para empezar a entrar en una explicación de lo que sabes, qué está encendida cada función, cómo funciona, verdad? En ninguna parte solo enfocándonos en configuraciones de línea basadas porque sacamos estas cosas fuera del camino para empezar, para que cuando iniciemos nuestro desarrollo, no se vuelva a hacer estas cosas de nuevo. No volver atrás nuestros proyectos en nuestro arranque de ese archivo CS. No puedo recalcar lo suficiente que la documentación es muy, muy importante. Es molesto, pero es importante porque, ya sabes, sabes, si proporcionamos unos buenos documentos que eso reduce la necesidad de que la gente te contacte para obtener apoyo. Entonces lo que vamos a hacer es aumentar las capacidades fuera de los documentos generados por auto. Entonces vamos a entrar, um, um, incluir lo que llamamos documentación externa, que es por defecto en estudio visual mucho después de vecindario, pero viene en estudio visual. Pero entonces swagger realmente puede aprovecharlo e incluirlo en su hermosa documentación. Y entonces lo que queremos hacer es ir al proyecto, click derecho, bajar a propiedades en, luego dentro de propiedades. Nos vamos a ir a construir sobre Una vez en construir, vamos a hacer dos cosas. El 1er 1 para mí es este Una palabra dice todo put path o output. Veo archivo de documentación XML. Simplemente tomamos eso. Entonces lo que estamos viendo es que en el fondo, queremos un proyecto. En los documentos se guardan documentos propios. Eso y será en forma de archivo XML. Además, una vez que hayamos incluido que vamos a empezar a recibir algunas advertencias son embarcaciones ya sabes que necesitan cada función para ser documentadas. Te voy a mostrar un ejemplo. Entonces voy a mí ese cambio, guardar, y luego volver al controlador de casa. Y luego empiezas a notar que estás obteniendo líneas verdes, um, debajo de la clase, bajo el nombre debajo de la acción. Y si terminas, la función es decir o el aire. Ah, lo siento. Al ver comentario XML faltante para miembro públicamente visible que por lo que una vez de una función o clase de propiedad pública , esperan que lo vas a documentar. Y eso es lo que significaba cualquier traer esa opción. Entonces cuando dicen documentado, quiero decir, pones tres, ya sabes, eso es un rastreo común regular. Pero cuando pones tres fuera de esos, genera ese resumen, y luego ves eso? Entonces esa advertencia usando viejo ido Todo bien, Así que si haces eso sobre cada uno tipo de genera un resumen donde dice bien, regresa, queremos decirle a la gente lo que devuelve. Deberíamos dar una descripción de esta función, nuestra clase, lo que sea, Correcto. Entonces esto es realmente genial. Es tipo de auto generado. Si tienes ah, parámetros. Tengo un perímetro int aquí. Es ver el nombre de Param I d Ya sabes, así que es muy guay. Pero la cosa es que puedes ponerte molesto, ellos pueden volverse molestos, sobre todo cuando no necesitas documentar cada cara pública, um, propiedad y función. Correcto. Entonces lo que vamos a hacer es doble buck a la misma ventana de propiedades y el build on Vamos a suprimir la advertencia. Entonces si pasamos por encima de la flecha Oh, bueno, lo siento. Pensé que te mostrarían el número de error, pero por lo general hay como un id asociado de cordón con nuestro Ya ves si vamos. Entonces si vas por la lista de la era del dedo del pie justo en, entonces miras las advertencias que estás recibiendo. Ves que hay un número asociado a la advertencia. Entonces ya ves, solo habilitando eso No, es esperar que voy a poner ese comentario XML en cada cosa que sea pública, y eso no es práctico. Pero no necesito el dedo del pie documentar el fan de arranque y esas cosas. Entonces lo que quiero hacer suprime esta cancha de advertencia, que es 159 Una vez que regrese a mi ventana de propiedades y se ve esta opción ya que suprimen advertencias, ya estoy suprimiendo 17 01 y 17. 02 Seguro que tú también lo eres. Pero fuimos a 1/3 1 punto y coma. 1591 En el cuando marque, guarde y vuelva a mi contraloría. Entonces verán que esas líneas no están encendidas si voy al aire, a menos que vean que no hay más advertencias fuera de esa naturaleza. Entonces, al suprimir la advertencia, es más o menos decir eso. De acuerdo, quiero que sepas que no te molestaré con este, ¿ verdad? Pero a medida que avanzamos, sin embargo, cuando hagamos nuestros controladores vamos a querer poner en nuestra documentación sumaria cualquier pequeño continuar con estas configuraciones. Hice el share de cadena para habilitar la documentación XML en archivo de nuevo en mi inicio fuera de que CS hay algo que necesito hacer en. Tengo que volver a subirlos a los servicios de conficker. Um, función encendido entonces después de las líneas donde configuro, slugger Jen, no voy a decirle dónde se puede encontrar la excelente documentación. Lo siento. No, no está debajo de su interior. Correcto. Perdón. Entonces es dentro de aquí que voy a seguir documentando, así que sigo dentro de los tirantes rizados de origen futbolístico. Hicimos las cosas oscuras del futbol en. Entonces bajo la cosa de punto más fuerte, voy a continuar, así que voy a declarar algo y ver bar expuesta expansión divertida inicio para el archivo estrella X. Cortomes su archivo de cantidad. Puedes escribirlo simplificado si quieres. Eso está bien en. Entonces fui a la derecha. Entonces es un camino de aspecto muy complicado aquí, así que usaría la interpretación. Lo que voy a ver es, um entonces tengo un signo de dólar abierto y cerrar comillas dentro de las comillas. Ten mi corsé abierto y cerrado en eso. Busco montaje. Muy bien, puntos, conseguir montaje ejecutativo. Por lo que la inteligencia te ayudará en el camino. Y eso es una función conductos. Y luego me estoy poniendo el nombre de los puntos correctos. Ese también es un teléfono que se muestra ahí. Di ese nombre. Está bien, así que esto básicamente está diciendo conseguir la ejecución un similar. Entonces este soy yo consiguiendo el camino donde se sienta el proyecto. Entonces este es un tejido muy dinámico y alguna vez podría notar el literalmente en para el proyecto, pero entonces eso sería único para el proyecto y tendría que hacerlo cada vez . Tengo un nuevo proyecto. Entonces al hacerlo de esta manera sólo estoy diciendo ¿Cuál es el camino en el nombre fuera de este proyecto? Enseguida, entonces. Yo solo quiero todo fuera ese dedo arriba el punto de extensión xml Así que encontrarás un archivo XML por este nombre donde quiera que esté, ¿ verdad? Entonces es solo una dinámica agradable. Estamos encontrando ese incendio externo. Por lo que al habilitar esto, verías que esta es la ruta que generó un archivo XML con el mismo nombre que un proyecto. Entonces eso es todo lo que estamos haciendo justo aquí en vez, fuera tratando de escribir Oh, todo fuera esto como una cosa estática. Solo estamos siendo dinámicos, por lo que puedes copiar en pedazos esta línea en tantos proyectos como tengas una vez que hayas habilitado esa función para la excelente documentación. El siguiente renglón vemos ex path proporcionan físico expatriado, Palabras de camino no combinan. Pasa el combinador encendido. Entonces ya ves, estoy consiguiendo la parte del león rojo. Entonces eso significa que necesito incluir elaborados. Yo sólo puedo ir a la línea roja. Aguanta pulsa enter on. Entonces obtendré la sugerencia. Debajo de las bombillas, todo lo que necesito para incluir sistema que tengo una vez esa piedra, eso está bien. Entonces si te deshaces líneas, solo necesitas dedo del pie sobre ellas. Golpea al muchacho Bold. Te dirás en qué biblioteca te falta tan parte. Pero combinar en el interior fuera de los índices de fuego. Voy a decir hasta directorio basado en puntos de contexto. Muy bien, calma todo expediente X. Muy bien, así que después de hacer estas herramienta y así sólo estoy consiguiendo el archivo XML más o menos que voy a decir, Vea que incluyen comentarios XML en. Entonces le digo que puedes encontrar los comentarios en X path. De acuerdo, entonces lo que sea que pongamos en la sección de resumen fuera de cualquier función o incendio que tengamos, va a entrar en eso. Es en un archivo que vemos que se genera teniendo en el archivo de documentación XML en. Entonces estamos viendo que cuando swagger está generando su documentación, debe tomar en cuenta los contenidos de estos incendios. Entonces voy a poner en verano ¿Es esto un artista controlador de prueba ap a controller on entonces este es solo estado a ver consigue valores. Este va a decir subir valor. Está bien, así que sólo me estoy poniendo algunas cosas. Entonces un cambio más que vamos a conocer al slugger es una línea bajo Strugar. Tú la entendí así. Tú después de definir el jugo en archivo, voy a poner una línea más ahí para decir, si punto escribió prefijo es igual. Va bien esto abrir y cerrar comillas. Está bien, así que esto va a hacer que venga sobre la puesta en marcha. Entonces, ya sabes, cuando entramos en modo de depuración en su lugar, fuera de él yendo en remolque, el ya sabes dónde después de bro llegar ahí, debería aparecer en la primera página. Entonces veamos si eso funciona en Douala. Por lo que acabo de entrar en humor Debo y lo primero que surgió fue, o documentos más lentosos. Y si miras más de cerca, ves que parte de la documentación o algunos fuera de los comentarios que la había puesto para las opciones están ahí, ¿ verdad? Entonces dije, obtiene los valores correctos para que uno en consigue obtener un valor. Lo que debe ser consigue un valor cerebral que. Pero sin embargo el punto es que funciona, ¿verdad? Entonces es así que montamos futbol, y una vez más es muy importante que mantengamos estos documentos. Hay una serie de otros atributos que se estarán sumando en el camino, y acabarías de ver todo el futbol los envolvió e incluirlos en la documentación y nos facilitaría compartir nuestros secretos de ojos AP con otros. 9. Configura los registros usando NLog: Oigan, chicos, Bienvenidos de nuevo en este video, vamos a estar configurando algunas utilidades de registro en nuestro proyecto A PR. Ahora, cuando digo anhelo, quiero decir, vamos a estar activando la funcionalidad para que más o menos podamos apuntar o configurar un mecanismo mediante el cual se puedan anotar las acciones que estimen importantes en nuestro aplicación. Entonces lo importante de anhelar en especialmente en un FBI, es que te ayuda a desacreditar. Te ayuda a rastrear exactamente lo que realmente sucedió en donde Soto logra esto. Vamos a estar usando en iniciar sesión. Hay otras bibliotecas que sabes que son buenas. Yo uso el amor por las redes también, pero en este video para este sirviente púrpura abusando de log final. Entonces para empezar, vamos a ir por encima de los pies nuevos se pone directamente con el proyecto, ir a administrar , conseguir paquetes, luego vamos a bro en vamos a buscar y eso es una carta y L o G y un log. No, son números de ellos aquí. Pero el que realmente nos interesa está enamorado de las extensiones, ese anhelo. Está bien, así que vamos a dar clic en ese. No lo cargues en nuestros proyectos. Y una vez hecho eso, siempre podemos ir a instalar y verificar que están moviendo el filtro y mostrando todo lo que está dentro o proyectar, um, cortesía de los nuevos gets. Muy bien, Siguiente arriba, queremos armar un conflicto. Hechos ya configurados este conflicto finalmente lo pueden encontrar en el recurso es para este proyecto , por lo que en realidad puedes simplemente seguir adelante y copiarlo. Andi, crea un archivo llamado end log dot convictos. Por lo que para crear un archivo, solo tienes que hacer clic derecho en el proyecto go. Para agregar en el nuevo artículo en realmente? En realidad no importa cuál. Simplemente uso un archivo de texto, pero debe tener la extensión de punto cómoda. Muy bien, así que puedes usar un archivo de texto y ves en log dot conflict como el nombre en. Entonces solo puedes colocar los contenidos en. No lo hice no voy a pasar tiempo escribiéndolo con ustedes, pero voy a explicar lo que hay en el expediente. Por lo que el archivo básicamente solo se inicializa en log xml. Bueno, es una configuración XML para cuatro en el registro, así que solo está haciendo algo de inicialización sentarse en el esquema de que introdujo algunos er básicos inicializar en. Entonces tenemos el camino. Entonces la ruta interna fuera del archivo, lo estoy sentando así algún camino en mi máquina. Está bien, para que puedas cambiar esto. Entonces lo más fácil, tal vez para ti Para que puedas ver dónde está tu escuela de troncos. Simplemente ponlo en tu unidad principal, llama en barra y probablemente crea una carpeta llamada Logs. Entonces sólo voy a hacer que eso la cambie. Por lo que es registro de cslash. Entonces, um c colon slash registra inicio de sesión interno, luego para el nombre del archivo. Así que tienen objetivos apuntar a los archivos de sangre. Por lo que el blanco amor fuego. Significado dónde debe toda la escuela de troncos. Está bien, así que vamos a decir, lo encontré encendido. Entonces puedes ponerte en nuestro camino una vez más, tal vez a tu carpeta de proyecto o a algún lugar que sea muy fácil de encontrar. Correcto. Um y luego quédese aquí. Básicamente está diciendo, ¿Cómo quieres que nombre este archivo así que Bueno, esto en realidad es decir Hold your mutilated Nombrado the fire. Por lo que el cebo de tiburón llama desbloquea gordo por cada día que realizas acciones. Mirará la fecha y generará un nuevo archivo. Correcto. Por lo que hace más fácil rastrear lo que sucedió ayer versus la semana pasada frente a hoy, específicamente en. Entonces las cargas estarían enteras. En caso de que cada línea se vea así vas a tener el bit largo el nivel que significa error occidental en para ti. Entonces ve esas cosas de nivel en, entonces vas a tener el mensaje real relacionado con esa línea. Está bien, entonces eso es lo que está en algunas reglas, como en la entrega mínima de máximo de canto de tierra. Pero creo que esto es lo suficientemente bueno para nosotros. El producto. Voy a guardar eso una vez más. Esto está incluido con el video para que puedas seguir adelante en el Fetchit si lo deseas. Está bien. Por lo que a continuación, necesitamos configurar a clases y configurar o poner en marcha para que solo podamos hacer un cambio rápido de control de compilación y ser solo para asegurarnos de que no introdujimos ningún héroes para romper o programar Andi. Fue exitoso. Por lo que podemos proceder a alguien para agregar a carpetas a mi proyecto. Por lo que voy a dar click derecho en Agregar Onda nueva carpeta en entonces el 1er 1 va a ser contratos en, luego el 2do 1 Así que voy a ir allí otra vez, ¿ verdad? Haga clic en carpeta nueva. Y éste ha sido para estos servicios. Muy bien, así que bajo contratos y quieren crear archivos de clase en con click directo de nuevo haga clic en agregar clase en. Entonces voy a llamar a éste que ya sirvo. Entonces, sobre los servicios. Yo voy a hacer lo mismo. Crea una clase, y voy a llamar a este servicio más largo. Entonces uno es servicio más largo que está bajo los servicios para ella en el otro es más tiempo servicio bajo la carpeta de contratos? No, bajo me encantan los servicios o me encanta un servicio. Perdón, vamos a crear algunos viejos Lo sentimos, este va a ser un interferir. Entonces la convención general de nomenclatura para Interferes es que te pones yo, um el frente de la rodilla. Correcto. Entonces interfaz pública, no clase, sino interferir. Por lo que es más fácil describir la clase y en cambiarla a interfaz. Pero solo asegúrate de no perderte ese paso. Está bien, así que dentro de la interfaz de anti LaVoy, inicia sesión cuatro, entonces este teléfono hijo va a tomar un parámetro, um, off type string y lo llamaremos mensaje. Está bien, Así que ten ah, largo en mensaje de cuatro cuerdas en entonces. El caso es que básicamente hay algunos tipos de cosas que querrán amar pueden estar en advertencias, mensajes de depuración y definitivamente errores que quieran Sierra. Entonces tenemos una función para un log in cuatro on, entonces solo vamos a crear otras tres funciones para advertir. Por lo que acabo de duplicar que solo uso el control y ser así seleccionando el aterrizado solo hacer control y ser cualquier duplicado que liner por lo que han largo en plena aga advierten sobre. Entonces voy a tener log, debug y luego log error. Muy bien, así que tengo estas cuatro funciones que estarán manejando el registro en función de cómo se va a configurar. Cada uno va a aparecer de manera diferente ligeramente diferente dentro del archivo de registro. Está bien. Por lo que sería más fácil para nosotros ver todas las flechas puestas cortadas a través del ruido apagado en cuatro. Quizás las advertencias serían menos útiles, y definitivamente no necesitamos el libro bajo ciertas situaciones. Entonces, ¿eso es por nuestros contratos? Puedo guardar eso y luego ir al servicio. Ahora el servicio se va de pie. Tener las definiciones de esas funciones que acabas de esbozar en el interferir. Entonces voy a hacer Colon. Yo más tiempo de servicio. Está bien, entonces esto es lo que yo llamo herencia. Entonces la clase va a estar heredando de la interfaz en ese entonces. Por eso, Smith para decir que necesito dedo del pie incluir algunas cosas que faltan. Entonces solo voy a usar la bombilla puesta en la declaración de uso en luego más allá de eso , va a decir que me han implementado después. No, adelante e implementar los interfieres también. No, obtengo las definiciones de función ella, um, por función que fue declarada en el archivo del contrato. Ahora, después de hacer eso, necesito, uh necesito, uh, sobre elementos, así que ah, propiedad. Más o menos alguien tiene estática privada, y entonces esto va a estar fuera del tipo I más tiempo. Por lo que ya me aparte de la ley final. Glamoroso después incluyen cedro usando n fuerte. Por lo que tienen su propia costa maderera. Pero estoy usando n log, así que quiero asegurarme de que estoy usando in log ¿verdad? Yo más largo, más largo. Entonces eso va a ser gerente de amor igual del dedo del pie. Algunos inicializando mi objeto más largo en Gwen para usar Obtener la clase actual más tiempo. Está bien, así que sepan que tengo este forro. Puedo llamar a este objeto o a éste. Llamémoslo un objeto para que pueda llamar a estos objetos. Noto llevar toda mi tala. Entonces empecemos con gente de troncos ahora mismo. Es sólo durante no se implementan. Yo lo estoy implementando. Entonces voy a decir cuando es lo que llamo lo siento cuando llamo a la función de depuración de amor. Entonces quiero que mi dedo más largo cree un mensaje d negrita. Ver que en entonces lo que va a enviar es el mensaje que he pasado a la función . Está bien. Y eso es más o menos por más tiempo. Log Arrow va a hacer lo mismo. Estoy llamando a mi error de punto de objeto más largo. Está bien. Dentro y fuera de curso, yo soy el que controla en qué mensajes se están pasando realmente. Entonces si es un error y debo asegurarme de que pasé en el aire un mensaje para que cuando revisé los troncos vea el árabe que estaba tirando bien, Entonces Pero sé que estoy seguro que tienes el zumbido de ello si no tomaste y posiblemente al azar off . Pero espero que ya posicionen video y terminen un constructor a la esperanza de que escribieran lo mismo que yo iba a leer en donde Ambos carro andi Pocos mundo a más tiempo punto info para registro por más tiempo que warren para advertido. Entonces todos estamos en la misma página. Ahora tenemos un cambio más que hacer. Eso es para los asombrados acerca de la OSC. Tenemos toe agregar que los componentes el nuestro medio donde las configuraciones y recordar asuntos de orden siempre reciben los controladores mintiendo para el fin. Entonces cualquier otra cosa aquí agregando solo un poco por encima de la derecha. Entonces para en log art para que el servicio más largo se inicialice en nuestra aplicación que arranca , voy a decir servicios acoplados. Agregar singleton. Por lo que puedes saber agregar el servicio a todo el medio estaban encendidos en la puesta en marcha fuera de la aplicación agregando ya sea singleton o transitorio o agregar ámbito. Entonces quiero decir, estamos usando solo tiempo, así que solo voy a decir agregar solo servicio Thanh I logger on. Te explicaré la diferencia Ciudad en el solo pueblo subrayan PTA y el transitorio más adelante su no abrumador de información por el momento. Entonces lo que estamos haciendo es decir que queremos crear instancia Singleton fuera del servicio en este es nuestro servicio. Realmente Nuestro Este es nuestro contrato para el servicio y esta es la implementación fuera del contrato. Entonces cualquier cosa que falte, ya sabes, te acabas de encima e incluyes la biblioteca en consecuencia hasta que no veas líneas verdes con eso, nos habríamos configurado enamorados en nuestra aplicación en todo nuestro núcleo donna aplicación sobre la carne está listo para su uso. Sé que nos hemos instalado en el amor. Tenemos que probarlo, ¿verdad? Por lo que la verdadera prueba sería probar algo o poner en una línea fuera de cancha que debería crear un registro y luego verificar que efectivamente se creó mucho. Entonces voy a ir a mi contraloría sobre lo que vamos a hacer es poner en algunas líneas tal vez en dos o cuatro opciones de mariquita. Cuando golpeamos la acción que debe escribir el registro de que la acción fue golpeada para empezar , lo que tenemos que hacer es realizar esta cosa llamada inyección de dependencia, donde nuestro servicio se va a inyectar en el controlador para que el controlador puede interactuar con están en el servicio del amor. Correcto. Entonces nos referimos sobre el servicio a través del contrato, alguien que diga privado, y yo soy sólo lo llamamos leer solo Andi. Veo que más tiempo de servicio. Está bien, así que ese es el nombre de mi contrato que creé en. Simplemente puedo seguir adelante y ya sea usar, entrar o simplemente recoger en el responsable para incluir cualquier dependencia faltante en, luego subrayar más tiempo. Entonces ese es el nombre de mis objetos. Es entonces cuando encarnan el servicio que está registrando. Pero luego para la inyección de dependencia, necesitamos dedo del pie. Sean claros por dentro. Off. Entérate. Contralor. Entérate. Um, constructor. Correcto. Entonces voy a decir que los controladores públicos de viviendas son constructores. Función predeterminada que se llama una vez que se inicializa una clase. ¿ Verdad? Entonces voy a decir una vez que llamaste a controlador domiciliario, quiero que inicialices yo servicio más largo. Voy a simplemente pasar en el ojo servicio más largo en luego los parámetros yo más tiempo así lo cool de Donna Court se negó a hacer inyección de dependencia en versiones anteriores fuera NBC, necesitamos herramientas de terceros como inyectar o algo así, pero NBC lo hace que lo siento punto net core hace que sea muy fácil sólo dependencia Inject porque viene biscotti construido en todo este ecosistema rodea la inyección de dependencia. Entonces eso reduce algunas obstrucciones, Um, algunas duplicaciones y hacer las cosas más de una vez Reduce la necesidad de algunos fuera de eso. Entonces solo voy a inicializar nuestro objeto de solo lectura en el puntaje más largo el objeto más largo que se va a pasar en cuando llamaron nuestros controladores domiciliarios. Sé que tengo mi objeto inicializado. No puedo interactuar con el servicio. Entonces si quería permitir algo podría decir subrayado más tiempo no encendido entonces tengo acceso a todas mis funciones que acabo de declarar. Por lo que me gustaría tal vez hacer en cuatro en dsi accedió, accedió controlador de casa. Está bien, así que voy a decir en el amor que esto que se accede al controlador de casa en me voy pie, tratar de hacer uno diferente, algunos para detenerlo. Entonces debajo de los consigue digamos que registro Debo en su lugar. Muy bien, vamos, entonces. Voy a decir el valor de Dios en no saber Post. Sólo en base a eso, esta vez me va a encantar un error. Entonces en su post, voy a decir que esto es un error, algo así en el último bajo. Probemos las pistas. Um, me iba a complicar un poco, pero eso está bien. Podemos conseguir eso más adelante. Entonces éste va a ser una advertencia. Esto es una advertencia. Está bien, en esto va a ser el amor advierte. Por lo que perdí. Todas estas funciones son acciones más bien con funcionalidad anhelante. Entonces intentemos que alguien entre en barco amarrado, y también voy a lanzar cartero. Entonces si ya lo has instalado o si incluso si no lo has hecho, entonces puedes seguir adelante e instalarlo y lanzarlo. Está bien, entonces vamos a poner en nuestro primer AP que llame. Por lo que acabo de copiar la URL de nuestras sesiones de depuración, dijo la escuela anfitriona local de Estados Unidos en cuatro. Para mi puerto va a ser diferente a tu así que sea cual sea esta base en la que estés. Entonces en Cartero, dije que eres l slash ap me corte a casa. Entonces ese es nombre fuera de mi controlador. A p a no está situado en casa. En cuando hago eso, me dieron me fui directo al get right. Si hago home slash cinco, entonces enviarlo manda toe value. De acuerdo, así que eso es lo que siento. Entonces déjame solo mostrarte lo que está pasando. Entonces cuando me fui a casa, se fue a éste. Entonces la expectativa es que en el expediente de la ley, me fui a ver esto consiguiendo log antes de que regresaran los resultados, ¿ verdad? El mismo olvido vería una depuración. Y supongo que el valor alrededor realmente eso es cerebral, Eso está bien, consiguió un valor devuelto el valor en entonces vamos a hacer un post. Entonces para hacer opuestos, Entiendes? Hemos estado haciendo conseguir algunos sólo va a quitar ese valor. Y solo tengo que cambiar esta solicitud, detener el puesto y enviar. Nunca retrocedo un poco iba un poco demasiado rápido. Muy bien, Entonces, um, vuelta en nuestro controlador, tenemos nuestro puesto. ¿ Llegamos a través de una P? Corto a casa. Entonces eso es lo que tenemos. Es un método de post. Entonces no estamos usando gets, pero estamos usando post. Está bien, pero entonces está esperando algún valor del cuerpo. ¿ Verdad? Entonces eso significa usar cartero tenemos dedo del pie puesto en algunos enfrentados son algún valor en el cuerpo. Entonces si haces clic en ese cuerpo lo afuera así aparece se filtra la autorización de Arum, encabezados y cuerpo Encendido. Entonces se conoce el predeterminado seleccionado. Entonces tenemos que ir a donde? Puntera cruda. Muy bien, así que tienes diferentes formas de enviar datos al cuerpo fuera de la solicitud que se está enviando. Está bien, entonces vamos a seleccionar un crudo y luego nos vamos de prueba Jason. Por lo que puede ver texto. Jason es lo que queremos. Está bien. Entonces si ves que nos mandó un mensaje, haz clic en él y ves a Jason en la lista en, entonces solo vamos a escribir una cadena, y vamos a decir valor de prueba. Está bien, en, entonces, cuando enviemos, veamos si esa funciona. ¿ Todo bien? Entonces no vemos nada regresando porque, bueno, no está devolviendo nada, pero estamos viendo un estatus. Está bien. Correcto. Um, incluso podría modificar esto, que podría devolver algo más. Pero eso no es realmente para lo que estamos aquí. Probamos el post sobre él pasó en entonces el final sería otro. Eso queremos probar sería la eliminación. Entonces si miras la pauta o así para llegar a hacer, ve al FBI Slash y esto es una vez más por qué la documentación es tan importante. Por lo que es slash del FBI e p i con acción slash cinco. Muy bien, así que intentemos eso juntos. Por lo que esta vez estamos haciendo un deletes. El tipo de solicitudes no es poses, no get, pero es eliminar justo en. Se espera que pase suficientes valores. Voy a salvar cinco. No necesito nuestro cuerpo alguien que diga de conocido por la razón. No, no necesito nuestros cuerpos que soy. Si miras el post, también miro puestos que ves desde cuerpo tsunamis está esperando el valor de los derechos del cuerpo . Um, así que tengo este mal hábito tener una mano pesada cuando se trata de suprimir el turno de todos modos, Así que vamos a probar la eliminación. Entonces solo cambio eso para borrar un ps slash En él es un muelle con barra de acción cinco de repente enviar y luego responderá, Okey, Okey, así que eso significa que golpeó. Y si no estás seguro, siempre puedes poner nuestros puntos de descanso en la acción. Ah, porque me refiero a una modificación. El punto de descanso funcionará después de los reinicios, pero solo puedes poner unos puntos de ruptura en una línea fuera de la acción en. Entonces solo asegúrate de que golpea la derecha en tu click enviar. Harás una pausa para Depot Guy en antes en el lugar correcto, Cualquier hoyo acabo de probar todas las opciones en las que ponemos cancha más larga. Entonces lo que voy a hacer es encontrar ese camino. Por lo que olvidé el camino. Mi camino es C slash proyecto slash librería un proyecto ps slash cerraduras slash. Voy a discutir Peel off que encienden mi ventana de explorador. Voy a navegar a ella aquí estoy. Por lo que navegé dedo del pie la ruta del archivo en mi sistema, y veo el archivo recién creado. Entonces si hago click derecho y digamos abrir con Notify plus, entonces voy a ver líneas sus solicitudes que envié para que nosotros, primer lugar, se puede notar que tiene en la fecha en que estaba en el timbre de tiempo on, pero tiene en el tipo fuera de línea de registro o el nivel. Correcto. Por lo que sabemos todo el en cuatro patas con todo fuera del eros. Conocemos todas las advertencias, ¿verdad? Por lo que nos dice el estrecho no donde estaban un justo esa información general o no fue error lo que ocurrió. O si simplemente comienzas a advertir fuera de curso donde estaban los que están determinando cuál se escribe estaban en la corte. Por lo que como desarrollador, podrás saber que cuando esto suceda, te pondrás abajo como garantía. Cuando esto suceda, te pondrás abajo como un error. Entonces alguien llama respuestas o, ya sabes, experimentan esta dificultad en este momento. En este día, puedes encontrar el archivo, encontrar la marca de tiempo en, averiguar qué flecha pudo haber ocurrido que contribuyó a la experiencia de ese usuario. Entonces así es como configuramos el registro en nuestra a p I. Y por eso es relevante para nuestra aplicación en, ya sabes, puedes revisarla una vez más. Esto se incluye con el recurso es para videos. Entonces ese es el excelente archivo de configuración on. Puedes seguir adelante configurar todas las demás cosas para un anhelo 10. Configuración de CORS: en esta lección, vamos a estar configurando nuestra política de curso. No hay autos es corto o es un acrónimo de origen cruzado. Uso compartido de recursos. Más o menos es un mecanismo que da derechos de dedo a otros usuarios que no están en la misma no significan como eso. Si en la aplicación está alojado en otra máquina de mi máquina en él está tratando de interrumpir es mi EPA. Fallaría básicamente de la forma en que lo tenemos. No. Entonces la política del curso es básicamente una forma de habilitar la interrupción a través de la tubería para que , ya sabes, todos de cualquier parte del mundo puedan interactuar con el FBI si es necesario. Por lo que estoy aquí en mi startup dot CS fuego on. Vamos a bajar del pie la función de configurar servicios y así puedo simplemente agregar esto justo debajo de donde estamos inicializando oh, nuestra identidad en el marco de la entidad. Y lo puse por encima de la implementación de lentitud. Entonces lo que voy a decir aquí son servicios atracados. Dios núcleo. Está bien, así que ahí está, nuestra inteligencia del curso va a ayudar. Entonces sólo voy a poner mi semi colon, pero luego necesitamos algunas opciones, ¿ verdad? Entonces solo voy a usar toda mi puesta en marcha Andi como una expresión lambda hablando, está bien, y realmente me llevaremos ahí, abrimos y cerraremos, rizado brisa, luego dentro de esto en lugar de la brisas actuales, vamos a ver o no agregar política. Entonces después de la política de Adam en, vamos a llamarla la política del curso. Entonces entiendo las respuestas centrales ¿hay claro qué lo publicó? Esto está encendido, entonces. Vamos, entonces necesitamos otro. Entonces muchas de las veces, probablemente te estés preguntando, ahí no puedes todas estas configuraciones y probablemente te estés preguntando, OK, Home, supongo. Memoriza estas cosas. Ya sabes, honestidad. Probablemente lo memorizarás. Y probablemente te acostumbras al patrón. Andi, aunque no lo hagas, entonces ahí. Hay mucho recurso por ahí. Eso te ayudará a puntar Net core tiene gran documentación. Entonces a medida que voy, puede que esté usando diferentes tokens, así que puede que no vea a la gente usando o puede que no vea constructor, pero es el mismo concepto, ¿ verdad? Entonces lo estamos haciendo lo sé solo construyendo la política. Entonces voy a poner constructor en otra línea, entonces, ya sabes, no se arrastra, todo está claro. Y luego fui a decir, puntos constructor mucho cualquier origen. Entonces esta, esta política o a pesar de la política, básicamente está diciendo que ya sabes, en cualquier lugar que la llamada sean los derechos del servidor de llamadas o una aplicación que está haciendo, um, contacto con mi a p a. A cualquier parte que viene de Hola? Está bien encendido, luego debajo de eso voy a decir punto en. Voy a saludar. Cualquier método. Entonces eso significa que no voy a restringir a nadie Toe solo podrá llamar a ciertas partes del FBI y no llamar a otros. Entonces uno más donde estoy viendo un bajo cualquier encabezado porque podría haber encabezados. No sé qué bateadores voy a requerir en mis llamadas del FBI todavía, así que no quiero poner restricciones a los encabezados a no ruido. Simplemente estoy siguiendo cualquier rumbo fuera de curso. Podemos restringirlos de otra manera, pero es bueno tener una política abierta, al menos basada en el contexto. Aquí. Es buen momento en política abierta, y luego restringimos en la aplicación que en lugar de un nivel global ahora, después de que hemos hecho esto y hemos construido esa política. Tenemos dos líneas más fuera de cancha que necesitamos escribir. Y eso se sabe en el configure. Entonces hicimos que en los servicios de configuración se añadieron ese servicio por poros? No, necesitamos el dedo del pie levantado. Conoce cómo debería estar comportándose. Entonces voy a hacer esto derecho arriba use enraizamiento on. Voy a decir arriba que usan núcleos. Muy bien, Algún inquilino arriba que la mayoría usan núcleos en día. Tengo que especificar qué política. Entonces lo acabamos de nombrar aquí. Simplemente construimos una política y le damos el nombre, política del curso. Alguien que lo reutilice. No te escuches anota. Estamos usando la política del curso en entonces estamos bastante terminados. Eso es todo. Por lo que hemos agregado núcleos de aplicación de tienda y sabemos que estamos listos para un poco sobre la interacción 11. Revisar y añadir cambios a GitHub: Oigan, chicos, estamos de vuelta. Y en esta lección, simplemente vamos a estar revisando lo que hemos hecho al revisar nuestros cambios en el remolque. Argueta Balcones. Entonces sé que estoy seguro de que ya nos apuntamos. Lo que queremos hacer es agregar nuestros nuevos proyectos o proyecto actual como repositorio en nuestros balcones del gueto . Entonces para empezar con eso, es relativamente fácil. El primero que quieres hacer es mirar abajo a la derecha en una esquina y verás son pero en sus vestidos fuera de control de fuente para que puedas hacer click en eso. Entonces puedes elegir get. Entonces si no ves eso si no ves en el control de fuente en nuestro si al hacer clic en él , no ves get. Eso significa que puede que te hayas perdido algo en la instalación para que puedas seguir adelante Y no Lord las herramientas de terceros para estudio visual ni revises los videos de aislamiento que habrías pasado antes en este punto en adelante, asegúrate que no te perdiste ningún paso de todos modos, si lo ves, puedes proceder a click get, y una vez que hayas hecho eso, ves algunos cambios de interfaz. Uno ya no ves eso. Pero esto está en el control de la fuente. Pero, ya sabes, ver uno que dice librería A p I. Y ves a la sucursal que se llama Maestro. Está bien, a continuación, querrás publicar para levantarte. Entonces ves a este nuevo equipo Explorer mear y subir y ves empujado a medida que tus servicios desarrollan . No los estamos usando ups, pero vamos a estar usando get hub Deja tal vez más tarde y puedo configurar desarrollar siglo cómo funciona eso. Pero ahora mismo nos centraremos en bajarnos. Eso es más fácil empezar con Y entonces seguiré adelante y pincharé publicar para obtener ayuda. Entonces me pedirías que verificara mi cono de usuario. Entonces si no lo has firmado ya de lo que puedes, probablemente parte problema para iniciar sesión. Um, si ya iniciaste sesión entonces te verás algo como esto. Por lo que solo confirmas puedes cambiar el nombre si quieres. Me voy a ir. My Andi puede añadir una descripción si lo desea. Si lo haces privado, eso significa que todo lo que podrás verlo e interactuar con él a menos que invites directamente a alguien a que venga, colabote alguien a que venga, en ello contigo. Voy a dejar el mío en Ticked on Click Publish para que sea un repositorio público, de acceso público. Entonces lo que se va a hacer es crear el repositorio. Sincronizar encendido, asegúrate de que empuja su demasiado ghetto dot com bajo mi perfil. Ahora, cuando llegue a conseguir esperanza, veré todos mis repositorios, y veré mi recién creada una librería AP I. Cuando haga clic en ella, navegará al espacio. Entonces desde aquí, puedo agregar una descripción si no la puse ahí antes en mi página web on, ya sabes, rellena como un rapido leeme para dar alguna información sobre sus positivos. Haré todo eso aquí fuera. Puedes seguir adelante y hacer tu propio barco para cuando nos volvamos a convocar, y entonces alguna información debería estar ahí. Pero sí, eso es todo. Así que sabe si tu computadora falla, es que siempre tendrás una copia de seguridad en Get up. Siempre puedes volver a clonar o no cargar donde solo puedes abrir en visual studio bajará a tu máquina puedes abrirlo y empezar a trabajar de nuevo. Y esa es una de las mayores ventajas con usar 1/3 party, um, um, control de fuente alojado en frío proporcionado como ghetto, donde tu cable siempre estará en algún lugar seguro. Si más adelante quieres cambiarlo de público, puedes ir a ajustes en. Se puede administrar tan bien el acceso. No creo que necesites ir a administrar el acceso de su hace. Entonces, una vez que haga clic en configuración y desplácese hacia abajo, entonces verá. Hacer que este reportaje relato sea privado para público. Puedes transferir la propiedad, o puedes eliminarla si deseas un acceso gestionado con un abogado para invitar a otras personas a que vengan y colaboren contigo. 12. Crear base de datos en SQL Server: Oigan, chicos , en este video, vamos a empezar a diseñar la base de datos que vamos a estar usando al menos los datos base yo es que vamos a estar usando para este proyecto. El escenario general con el que estamos trabajando es uno donde tenemos una librería de día. Quieres que desarrollemos un AP porque, bueno, tienen. Ahí hay una librería, tienen una base de datos. Han estado almacenando datos sobre los libros y autores. Andi. Entonces lo que pasa, sin embargo, es que realmente quieren proporcionar su información sobre sus libros y sus autores dedo de terceros, um, personal en la mejor manera de hacerlo es a través de una E p I. Para que diferentes sitios web puedan integrarse con su base de datos y extraer datos en sus libros sobre potencialmente incluso realizar compras a través de esos sitios web de terceros. Entonces los escenarios, realmente que vamos a estar construyendo un FBI encima en base de datos existente. Entonces, dicho eso, los scripts para la base de datos que estamos a punto de construir se proporcionan en el recurso es así que si ya debes sentir con la construcción de una base de datos desde cero, entonces simplemente no puedes saber ese script y seguir adelante y generado en su computadora. Para aquellos unos pocos que no se ven, sabes como cómodos. Entonces puedes ver. Este video pasará por construir toda la base de datos. En realidad sólo tenemos dos mesas. Uno para los libros, otro para los autores. Vamos a crear una relación el día como la construimos contado, y verás algún pequeño matiz sobre la construcción de la base de datos a través del estudio de gestión de secuelas . Si quieres mejorar tus habilidades en el desarrollo de bases de datos, que puedes revisar mi otro curso, cual se titula Microsoft SQL Server Development para todos para que puedas comprobarlo y mejorar tus habilidades en SQL más. Voy a continuar por lo que ya habríamos instalado SQL Express, señor. Um SQL Express. Si tienes otra edición fuera de SQL Server en tu máquina y eso está bien, solo puedes seguir adelante y abrir el estudio de administración con esa instancia en cuándo empezar de nuevo en esta instancia, donde acabo de abrir el estudio de administración y el pop Spotswood. Entonces para conducir mi instancia SQL Express, solo uso un punto y luego sobre slash y en la palabra esque UAL Express. Entonces una vez que haga eso y pudiera conectarme, entonces debería poder obtener acceso puntera a esta pantalla. Entonces en las bases de datos, solo voy a hacer clic derecho y decir nueva base de datos. Y luego lo primero que hay que proporcionar es el nombre fuera de la base de datos. Yo lo voy a llamar librería. Está bien. Librería, estuche camello. Bigby Big s todo lo demás, la minúscula. Por lo que sólo lo llamo librería Click. Ok, no, para llegar a la base de datos, cualquiera para expandir bases de datos. Entonces ves que aquí que tengo un montón de otras bases de datos, pero la que nos interesa es librería, así que probablemente tengas una. Y si estás de pie y deberías poder nunca llegar así que bajamos pequeña librería y había mesas Actiq puestas. Después hacemos clic en nuevo. Tan radicalmente tablas, nueva mesa. Muy bien entonces, eso lanzará nuestro diseñador de tablas Ahora para más diseñador de tablas, solo vamos a empezar a llenar todas las columnas, el tipo de datos que debe tener cada columna y si podemos aceptar no valores en esa columna o no. ¿ Verdad? Entonces la primera columna que toda entidad necesita dedo del pie tiene en base de datos bien diseñada es un i d. Muy bien, Así que yo d sería representaría un fuego de identidad único, derecho Por cada registro que entra, pueden ser identificado de forma única por cualquier valor que entre en la columna ID. Ese es su propósito en entonces el tipo de datos que estoy usando para los míos es int, Pero entonces, cuando es un único identificando honestamente lo que se llama una clave primaria, Así que para que sea una clave primaria, solo voy a grillos del dedo del pie, haga clic derecho, y luego se ve la opción establecer clave primaria en. Entonces lo siguiente que quiero hacer es asegurarme de que el valor cambie por sí mismo cada vez. Entonces bajo propiedades de columna, voy a bajar a la que dice que no vi especificación y luego voy a poner esto en sí, estoy haciendo una identidad. Por lo que una vez esta identidad, se incrementará en uno Cada vez que se añada un registro, puede cambiar eso, pero por no, lo dejamos en paz. A continuación, voy a estar agregando nombre. Por lo que el nombre del autor en este tipo de datos de cuándo usar environ char 50. Por lo que Environ llanta está diciendo que voy a ser Story en texto sobre Quiero almacenar hasta 50 caracteres que valen texto. Muy bien, a continuación, donde apellido, que también va a ser invitar a nuestros 50 voy a tener viol y luego éste voy a ponernos marcas de char de ambiente porque, ya sabes, en caso de que quieras decir cosas bonitas sobre Author Marks significa que no hay límites percibibles . Por lo que es casi hasta la limitación de su base de datos frente a su máquina. Pero no hay como 50. Hiciste esto. Quiere llegar a 50 personajes. Todo 51 más allá se le cortarán marcas. No hay número real Límites escribe, luego perfil en. Entonces diremos perfil. Ah, está bien, bueno, creo que bio y perfil son más o menos lo mismo, así que en realidad solo elimino perfiles. Por lo que el autor tiene nombre de pila apellido bio. Si pensamos en algo más en el camino en el proyecto y podemos agregarle algunos simplemente van a hacer control s y guardar. Perdón, lo hice sin explicar. Entonces solo para guardar el nombre de la mesa, sí controlamos SRE no puede el disquete que tienes en. Entonces le damos un nombre. Autor Click OK, y luego tenemos nuestra primera tabla, que es autor la siguiente tabla que queremos. Por lo que las mesas iraquíes vuelven a ir a nuevo van a la mesa en entonces el establo va a ser libros. Entonces si todos del mismo patrón de diseño tenemos un 90 lo estoy haciendo tipo duro en un músculo en para que sea una clave primaria en Establecerlo para ser identidad. Está bien, así que por supuesto, siempre se puede pausar el video y rebobinar donde pueda tener que rápidamente allí. Pero yo solo presiono. Por lo que cada libro tiene un título sobre el título va a ser environ Char. Pondré carta Environ aquí para ser 100 porque sabes que tienes algunos libros con títulos largos . Bueno, el año en adelante, entonces esto siempre es complicado Cuándo, cuando se trata del año en el año editorial, ¿lo ves? Nosotros en número entero que guardas. ¿ acaso invita a nuestros cuatro no? Um, se puede poner complicado, así que creo porque no hay tipo de datos del año, también hay un tiempo de beat estar en ese momento, pero no quiero almacenar todo el tiempo de escritura solo para obtener los derechos del año. Entonces lo que voy a hacer es que lo voy a contar como int, correcto. Entonces, por supuesto, cuando estás construyendo la aplicación, depende de ti asegurar que los datos adecuados lleguen a la base de datos. Entonces todas esas son reglas. Tienes que ser consciente, ofreciendo poner en el ESPN, que es, ya sabes, el número único de libros que puede tener sobre esto puede ser un único identificar también. Pero tú fuera de tener cosas que hacen un libro, Uli, al tener el libro en sí dentro de la base de datos, general quieres asegurarte de tener una clave primaria que sea separada y aparte de identificar factores fuera un libro. Está bien, um, voy a poner un resumen así que resumen sería como, ya sabes, si se lo anunciaras a alguien, que lea ese resumen. Vamos a tener una imagen para este libro. Por lo que en una imagen de vista previa sobre esta, voy a ponernos en marzo son 1 50 también. Entonces estoy sentado para ser,ya sabes, ya sabes, bastante grande en términos fuera Entonces lo que pasa es que la imagen realmente va a ser el dedo del pie del camino . Ah, archivo ¿te dejo un archivo en alguna parte? Está bien. Entonces podemos simplemente dejar eso tal cual Cuando lleguemos a ese punto, lo exploraremos un poco más en. Entonces tenemos el precio en. Voy a fijar el precio su dinero. Por lo que SQL MSS realmente nos da un tipo de datos. Tienes dinero pequeño, y tienes dinero donde es dinero. Dinero, ¿verdad? Entonces el dinero es como un tipo de datos agradable literalmente diseñado para almacenar valores de dinero. Um y ya sabes, se incorporó al motor para cazar mejor estos valores. Está bien, entonces el último sería autor yo d Muy bien. Por lo que autor, d sé que actuará como clave primaria. Y eso tiene que ser en Tudor porque sprint Lo sentimos, llave extranjera, porque las claves extranjeras tienen que tener la misma ¿El tipo de la clave primaria correspondiente, verdad? Por lo que una clave extranjera. Básicamente digo que cualquier valor que entre aquí va a vincularse a lo que todo el mundo entra aquí. Entonces si el autor uno trajo un libro, um, vamos a guardar ese registro de libros que voy a poner en el título del año y todo sobre el libro. Y luego fui a poner uno como valor para autor. Yo t decir que este libro está asociado con el otro con el autor. Perdón, ¿quién también tiene que devaluo? Está bien, Entonces hay dos cosas que tenemos que hacer aquí. Y luego terminamos con este diseño para Saber a dónde voy? Dedo uno, guarda esta mesa. Entonces voy a salvar a éste. Tiene libros justo en. Esos deberían ser autores. Yo lo llamé autor. Deberían ser autores. Entonces si tienes autor, te sugiero que lo hagas estamos a punto de hacer donde Simplemente expande tablas y ves tus dos tablas Ahí ves autor en libros. Por lo que el nombre de la tabla suele ser plural para reflejar que está almacenando más de un registro. Por lo que estás almacenando más de un registro fuera de terceras partes. Entonces simplemente postergas tercios, ¿verdad? Entonces déjame volver a pasar por ese ejercicio de cambio de nombre. Perdón. A veces me muevo rápido. Está bien. Por lo que puedes hacer click derecho. Está encendido, entonces ves renombrar ahora mismo. Una vez que haces eso, se vuelve inevitable. Entonces lo que acabo de saber fue solo doble clic, pero muy lentamente. Por lo que ya está seleccionado. Y si me lo tomo una vez más, se vuelve inevitable. Eso es todo lo que hice de manera diferente. Pero es el mismo efecto. Entonces autores y libros Y cuando recibas esa advertencia de cambio de nombre rentable, haz clic en Sí, en Prensa Adelante. Muy bien, entonces tenemos autores y libros. Entonces ahora que lo he nombrado mejor, lo que voy a hacer es correcto. Haga clic en el espacio vacío debajo del diseño de libros, ¿verdad? Así que volver a mis libros diseño clic derecho, ir a las relaciones sobre el número, gastó el anuncio justo en luego al lado de tablas en especificación de columna. Voy a hacer clic en ese rol. Veo esta elipsis las elipsis encendidas. Entonces voy a ir a la tabla de claves primarias, que son los autores. Por lo que quiero una clave primaria en. El autor es estable, que es I D. Sobre eso. Digo que la columna correspondiente en el cuaderno estable en la tabla Clave Extranjera, La columna correspondiente sería el autor I d. derecha. Por lo que límite autor, yo d hace fácil saber que todo esto es una clave ajena al autor Stable Sonam, vinculando el significado. No puedo tener autor 100 en el libro Estable para ello para un libro. Pero sólo tengo cinco autores se conocen fuera de ellos del yo d 100. Entonces lo que estamos creando aquí es una restricción en el valor de que es posible una vez más si lo sabes, me moví demasiado rápido. Andya estoy usando jerga es que no estás entendiendo del todo el nuevo cántico. Mi curso Desarrollo de servidor Microsoft SQL para todos en él te traerá desde cero. ¿ Qué bases de datos están completas para desarrollar bases de datos para sus propósitos sobre Ben? Ya sabes, todo lo demás se partió en su lugar. Qué óperas Adelante aquí. Entonces hago clic, OK, pateo la ropa, luego guardo en. Entonces una vez que guarde eso, me va a incitar a que estoy a punto de hacer cambios. Yo digo que sí. No, puede que te pongas de época si no te resulta tan familiar. Estabas con este tipo de modificación fuera, puedes obtener un error diciendo que ya sabes, no puedes cambiar las tablas que ya existen o tienes que caer o algo así. Lo que puedes hacer es ir a herramientas o dos opciones. Y luego en el cuadro de diálogo que aparece, se baja a diseñadores on. Entonces verás esta opción. Asus prevenir cambios son necesarios. Recreación de mesa. Por lo que tendrías un tictac si tuvieras área tendría. Adicto, lo acabas de desmarcar. Muy bien, Así que una vez que en el boleto y haga clic, OK, y luego vuelvas a transitar. Deberías estar bien. De acuerdo, así que ahora que hemos tenido hemos diseñado esta base de datos o próxima misión será empezar a construir sobre la A P. I R. Al menos empezar el proyecto arranca la fuente anotó nuestro propio edificio. viejo es el FBI encima de ello. ¿ Verdad? Entonces estaremos poniendo datos de ejemplo y tal vez haciendo algunas modificaciones a medida que avanzamos más adelante . Pero ahora mismo hemos logrado bastante. Una vez más, el guión está disponible para ti y lo que puedes hacer con el guión, y se verá, me quedaré así. Este es guión. Entonces lo que haces con él es abrirlo en el estudio de gestión en que solo tienes que hacer clic en ejecutar, y solo, ya sabes, construirá estas tablas. Entonces pasé por cómo los construyes en el diseñador con el guión. Solo necesitas abrir el guión en el en el estudio de gestión. Perdón. Y luego el slick ejecutar, y va a seguir adelante y crear ambas tablas para ti. Está bien. Está bien. Entonces eso es todo para hoy pronto. 13. Implementar clases de datos y el marco de la entidad: ustedes chicos en esta lista de vamos a empezar a desconectar nuestras clases de datos en nuestro proyecto para que podamos empezar a interactuar con nuestros datos. ¿ Paz? No, Nosotros sí configuramos las bases de datos en SQL Server el. Utilizamos SQL Server Express en. Lo que tengo aquí es un Bueno, esto es un diagrama de base de datos o e r d. Así que más o menos de lo que el generar esto me habría perforado en la base de datos y luego va a ser ser una estrella. Gramos cocinan directamente nuevo diagrama. Apareció un cuadro de diálogo. Añadí las tablas en. Entonces generó esto. Por lo que todavía me muestra todas las columnas, las claves primarias en las claves foráneas on Mostrar que hay una relación de clave extranjera. Qué relación clave extranjera Primerica entre estas dos tablas. De todos modos, eso es realmente solo un chico porque no es donde va a estar el trabajo. El trabajo va a ser en estudio visual, así que tenemos algunos cambios que iban a tener que hacer para que visual studio, nuestro producto en estudio visual más bien toe tener algún conocimiento fuera de la base de datos que estamos construyendo sobre el otro lado. Entonces el primer cambio que voy a hacer es en la configuración up que archivo Jason. Entonces en este archivo, verás una conexión predeterminada, y va a tener algún servidor en alguna información de base de datos ahí dentro. Nadie incumple. Te están dando. Ah, nombre bastante único. Por lo que te dan es ser redes dash. Cualquiera que sea el nombre de tu proyecto que sea el guión, entonces algún buen valor, ¿ verdad? Ya sabes, lo que esto haría es decirle a entity framework que este el nombre fuera de la base de datos y si no existe, entonces lo creó sí existe, luego lo usa. Entonces en nuestro caso, ya tenemos una base de datos. Eso es una simulación porque estamos construyendo una base de datos extranjera del FBI que ya existe. Entonces lo que tendremos que hacer es decirle uno. ¿ En qué servidor está esa base de datos? Entonces esto es ah, servidor de base de datos local que básicamente vino incorporado en el estudio visual. Es perfectamente capaz, pero no notamos, y estamos usando SQL Express en el camino para obtener rs. Lo expresas aún así declaras el nombre. Entonces te vas con el dedo del pie. Tienes tres opciones. sea puedes decir el nombre aquí debe máquina caja slash andan SQL Express o cualquier instancia que sea que instalaste en caso Tal vez no me siguió y obtener SQL Express Cualquiera de otra instancia que estés usando eso está bien. Apenas apuntó al servidor correcto. Entonces si me seguiste en tu haciendo exactamente lo que estoy haciendo y eso está perfectamente bien, entonces la dirección del servidor que necesitamos aquí se vería algo así como el nombre de la máquina o vamos a escribir host local en, entonces el cuadro slash y luego ves SQL Express. Entonces esto está diciendo la máquina local, que es mi máquina aquí en el SQL Express. Instancia, Si las bases de datos en otro servidor, entonces más a menudo que no, realidad puede simplemente poner en el nombre fuera de esa máquina en ese espacio. Está bien, en dso Esto me está diciendo que tengo unos personajes de escape inválidos. Por lo que en realidad necesito una doble línea inversa justo ahí. ¿ Verdad? Entonces es si una slash, como la inversa es algo especial. Entonces es sólo decir de carácter ilegal. Simplemente ponle ese doble debería estar bien, son Así que estoy diciendo que mi servidor es una máquina local y estás buscando instancia de SQL Express , que es más o menos lo que se muestra aquí o cuando tratamos de conectar. Recuerda, vimos ese SQL Express por lo que podrías haberlo escrito como aparece aquí. Por supuesto, necesitas doblar la Barra inclinada porque una slash s es un problema o puedes un host local Barra inclinada contraria SQL Express son desiguales, cortas, analfabetas. Sería ver full stop s your express, Nuestro full stop slash SQL express. Podría haber dicho parada completa aquí mismo. Muy bien, así que full stop slash backslash eso que full stop representa local era más o menos, pero lo dejo en el anfitrión local. Siguiente arriba es la parte de la base de datos. Por lo que necesitamos el nombre fuera de nuestra base de datos. Por lo que nombré mi tienda de libros de base de datos. Así lo llamé yo. Entonces voy a cambiar el nombre de esta base de datos, que es lo que me están dando. Y dije que me están dando una parte de una caridad. Lo llaman librería en el FBI Square, así que sólo voy a borrar la grasa. Está bien. De cualquier manera, acabas de borrar lo que había ahí. Deja los semi colones, por favor. Entonces, ¿simplemente borrando alrededor de los puntos y comas? No moleste esos semi colon así que Si te encuentras con errores o ves que Groenlandia apareciendo, probablemente sea porque se perdió la parte superior puedes deshacer. Vuelve al original y vuelve a intentarlo. Entonces, ¿quieres cambiar el nombre del servidor entre el signo igual en el punto y coma? Parecer para la base de datos Nombre Igual Iniciar sesión en punto y coma en. No tienes que molestar nada más en esta línea hacia prácticamente por lo que solo tienes que hacer clic en guardar. Ver este archivo y él puede cerrar ese archivo Así que terminamos con ese fuego para no siguiente arriba tenemos el contexto db de la aplicación. Entonces para la aplicación DB Context, que se llama bajo su carpeta de datos en This is a file application. Contexto Db. Básicamente está interactuando con los ajustes up Jason D. Por conexión, y la razón está haciendo eso es, en nuestro inicio. Habíamos dicho que se usaban en la conexión por defecto. Uh, entonces el contexto DB está usando esa aplicación de archivo de clase. DB Context, que está utilizando un servidor SQL en la configuración para la cadena de conexión, se encuentra en forma de conexión predeterminada en ajustes up. Jason Así que este contexto DB es no es no que hayamos hecho este ajuste. No mira nuestra base de datos actual con la que acabamos de decir que es con la base de datos estaba trabajando . Entonces, no, lo que necesitamos hacer es escribir algunos archivos de clase en nuestros proyectos que se verán igual que sobre las tablas. Entonces cuando digo archivos de clase derecha que se parecen a nuestras tablas, lo que estoy viendo está en el solo puedes escribir tipo Asyut. Simplemente empezaremos diciendo, db puesta, por favor. El casing es muy importante. Quieres capital B Capital s BB set on, Entonces la primera tabla serían autores, Así que en realidad estoy escribiendo un archivo de clase. Entonces voy a explicar por qué fui a ver Autor no son autores. Por lo que dijo Beebe, Autor. Y luego le estoy dando el nombre autores y es una propiedad, verdad. Entonces se pone en la línea roja ¿hay? Encontremos más sobre ello todavía. En luego otro. Por lo que acabo de escribir la palabra prop. El Rop se presionó dos veces, y me generó esa línea. Por lo que claramente me perdí el calificativo público fuera que una vez las casillas Amigo deberían ser públicas. BB establece en autor entre paréntesis de hambre y luego autores en. Entonces déjame intentarlo otra vez. Por lo que es televisores públicos en entonces corchetes angulares. Y entonces éste, su libro sobre el nombre fuera de la mesa son los libros son así que estos lo que hay en este corchete angular está esperando una clase. Entonces lo que voy a hacer es pasar el rato sobre él. Ponga la bombilla encendida, luego vea generar un autor de clase en un nuevo archivo encendido. Entonces voy a hacer lo mismo para la venta de libros. Pasó de ser blanco y Underland a saber ser Sion o cualquier color que sea justo como unas palabras realmente clave. Por lo que fui a lo mismo para bookworm, fui a generar libro en un nuevo archivo para que se generaran estos dos archivos autor y libro dentro de mi carpeta de datos justo al lado de mi aplicación. Contexto Db. Ahora la razón por la que nombré al autor de la clase pero la tabla o el nombre fuera de los autores de la propiedad es realmente cuestión de semántica, ¿ verdad? Entonces tenemos un set off autores, ¿verdad? Pero entonces sea cual sea el nombre de la clase, se quiere representar a una instancia singular a menudo autor. Entonces un autor representa un registro que representa una clase en nuestro, um ya sabes, nuestros conceptos son derecho del proyecto, nuestro programa. Entonces es realmente algo de semántica, pero sí. Entonces tenemos una clase para el autor, y cuando tenemos un grupo fuera de ellos, sería autores. Y esa fuente mentum arriba en la bestia de datos sobre mesa llamó autores en el concepto CME para libros. Muy bien, así que voy a empezar a llenar Haute nuestros expedientes de clase. Solidos sostienen el control y hacen clic. Está bien, Entonces, control, dale click en él. Navigado hasta la definición de clases. Correcto, Eso funciona 90% de descuento en el tiempo. Por lo que voy a empezar a poner escribió las propiedades para autor relativas a las propiedades sobre tipos de datos que habíamos delineado en nuestra base de datos. O supongamos que no construimos esta base de datos, pero estamos heredando una base de datos que tenemos que desarrollar por encima. Necesitamos saber cuáles fueron los nombres de las columnas? ¿ Cuáles fueron los tipos de datos? Citron fue la clave en. Tenemos que imitar todo eso en nuestra clase de datos para que podamos empezar a interactuar con la tabla correspondiente. Entonces en realidad voy a empezar diciéndole la mesa que debería mapear. Por lo que puedo tener la oportunidad de usar sobre llamadas datos anotaciones onda. Empezamos con corchetes. Entonces esto está entre los Bravos por el espacio cercano en público, ¿ verdad? Y vamos a ver mesa Capital, mesa T andan abrir y cerrar enfermedad por quemaduras. Y luego les voy a decir que la tabla er asociada es toda tercera porque ese es el nombre fuera de la tabla en la base de datos. Entonces si lo escribiste mal o tal vez no se puso la s, está bien. No mataré permitirme una ortografía. Pero solo asegúrate de volver a ponerlo porque visual studio no será alérgico para proceder, o te encontrarás con problemas si las ortográficas no son exactas. Muy bien, entonces mesa necesita algo incluido. Entonces sólo voy a incluir esa dependencia. Entonces conseguimos nuestras anotaciones de Dana Data para esquemas en, Entonces vamos a empezar a llenar viejo sobre clase de autor también vamos a conocer esto un parcial alguien que decir, autor, cruz parcial. Entonces es orden público de clase parcial. Perdón. Muy bien, entonces vamos a tener en la columna idee on Definimos idea en la base de datos para ser entero o así yendo a nuestro nombre y apellido tanto una cadena, porque en la base de datos los declaramos como vier cargo solo para volver atrás y check, Siempre puedes volver a tus columnas. Miro los tipos de datos Así que nombre era marzo son o entorno son primero en mi apellido son ambos. Eso en bio era marcas de char var, que es más o menos sólo otra cadena en. Entonces eso es todo. Por lo que ahí habríamos definido todo fuera de las columnas correspondientes. Entonces una columna. Bueno, eso son todos ellos. Eso son cuatro columnas y aquí tenemos las cuatro columnas. No obstante, lo que pasa es que en Autor puede tener muchos libros, Entonces ese es el punto de la relación con un autor, muchos libros. Entonces si no estás tan familiarizado con las relaciones en base de datos diseñando cantícula, mi curso Microsoft SQL para todos bien, pero no mostrar la tabla con la clave externa. Más o menos son los muchos. Entonces una vez que pones una clave externa en una tabla, estás diciendo que tienes una entidad que puede tener muchos fuera de estos registros. Tienen un autor. Um, ya sabes, un registro para una persona que puedes tener muchos libros relacionados con ese autor. Entonces en C agudo, lo que queremos hacer es crear ah, propiedad que diga que si consigo un autor y quiero todos los libros identificación asociada, entonces necesito al menos fuera de los libros. Entonces eso es exactamente lo que vamos a escribir. Por lo que tener público virtual on. Entonces sólo voy a incluir esto. Entonces estamos usando una lista, que es un tipo de datos nítidos en C. Enumero fuera de libro tipo, correcto. Entonces quiero una lista fuera de clases de libro en. Voy a llamar a esta lista de libros. Eso es todo. Entonces si consigo un autor, entonces sería capaz de incluir todos fuera de los libros relacionados dentro fuera de ese disco? No, para el libro, vamos a empezar definiendo a qué mesa se asocia, cuáles son los libros de mesa. Entonces voy a conocer una vez más este parcial su libro público de clase parcial. No, voy a empezar a construir viejo o a definir la columna diferente. Entonces he d básicamente cada uno fuera de ellos, así que solo paso y recuerdo demasiado de ellos de nuevo a las pruebas beta que estipulaste en caso de que estipularas diferentes tipos de datos de mí y me adelanté y lo hice dije video compuesto y fallas en. Pero te explicaré lo que está pasando aquí. Entonces tenemos la idea. Por supuesto que tenemos el título donde el en. Entonces ves algunos signos de interrogación además de ellos, básicamente estoy haciendo nada poco. Muy bien, entonces cuando decimos notable en la base de datos sería de definido no es en C agudo, que poner un signo de interrogación y funciona en algunos tipos de datos. No funciona en alguien. Una vez que ponemos el signo de interrogación, significa que es un dedo del pie de carga. ¿ Tener el valor? No. Por lo que el marco de entidad va a hacer cumplir este tipo de validación. Entonces si trato de crear un libro en, no proporciono un vital para el título estatal que es diferente, el trabajo probablemente lo va a echar atrás y decir que necesitas un válido para esto. lo general es así de estricto con numérico sobre lingotes. Una vez toyed string, como que tiene un poco más de clemencia, así que realmente me estoy centrando en el entero. El doble Andi, el otro entero ahora han llenado todas las columnas aquí que están presentes en la base de datos sobre tienen autor Odd I D. Pero entonces lo genial del marco de entidad es que si tienes, ah, relación Ori de esa relación clave extranjera recuerdo que discutí eso con el autor. Al incluir esta lista fuera de los libros, puedo recuperar sólo un autor y luego sacar automáticamente la lista de los libros. No, lo mismo para el libro. Si recupero un libro el, quiero algunos detalles sobre el autor en SQL que seguiste en una unión interna, pero en el marco de entidad, te permite incluir una propiedad fuera del tipo del archivo de clase que tiene los datos. Entonces no, cuando consiga ese libro, tendría una propiedad en ese libro llamada Author on Off Course Author Ideas. ¿ Qué vincularía al autor? Y sabes que sea cual sea la idea que esté fuera del autor, está encendido para recuperarla automáticamente. Entonces yo sería capaz de obtener su apellido de pila por en sus detalles con sólo conseguir el libro. Entonces eso es lo que en el trabajo diferente trae a la mesa para que puedas seguir adelante y guardar eso en eso es todo para no. Entonces lo que acabamos de hacer sólo para recapitular. Y sólo voy a hacer un proyecto de ley para asegurarme de que no presenté nada para romper el programa y fue exitoso. Entonces eso es bueno. Entonces lo que acabamos de hacer fue uno aplaude la configuración para que la base de datos mire nuestra base de datos apropiada , que una vez más estaría dentro de este contexto en base de datos existente. Muy bien, también nos adelantamos en DWI configuró las clases parciales para nuestras mesas. De estos son como los conductos son embajadores para base de datos. No sé qué otra palabra podría usar para describirlos, pero más o menos van a intermediar las relaciones entre nuestra aplicación aquí en la base de datos real. Entonces, ¿nuestro contexto db contexto? No, si, ¿ está bien? Busco una tabla llamada autores y voy a estar usando esta clase que acabamos definir toe broker Cualquier relación entre esos Si me refiero a comenzar algo, será relativo a lo que pueda insertar a través de esta clase a medida que avancemos. Esto tendrá un poco más de sentido, o simplemente hacerlo en base a la configuración. Algunas cosas van a cambiar que pueden tener que volver a examinar estas cosas, pero para ninguna parte lo hace esta configuración, por lo que no tenemos que volver a hacerlas. No niegues 14. Setup AutoMapper y DTOs: Bienvenido de nuevo en esto. Escucha, vamos a estar activando nuestros objetos de transferencia de datos, o DT debe cuatro cortos además de configurar Autumn Oper, que manejará el mapeo de pozos entre nuestros datos. Los amigos son objetos en nuestras clases de datos base. Entonces déjame explicarte un poco sobre por qué necesitamos objetos de transferencia de datos. Entonces tengo aquí las clases de datos que recientemente creamos, que serían libro sobre autor. Por lo que ya sabemos que estos están fregando directamente a las tablas en la base de datos. Si cambiamos la tabla en la base de datos, hay que cambiar estas clases en consecuencia solo para asegurarnos de que no rompamos nada el camino. Ahora, la cosa es que no queremos interactuar directamente con estas clases. Se supone que estas clases son representación directa fuera de la base de datos sobre si necesitamos modificarlas , solo se deben modificar modificaciones relativas del dedo del pie en la base de datos sobre gargantas construyendo el MP que iba a estar exponiendo cierta funcionalidad que permitiría que la interacción fuera alguien limitado. Por lo que estamos en control de lo que yo usuario puedo hacer a través de nuestro 80 I en que se inicia con un desarrollo adecuado . lo que probablemente voy a dar un ejemplo donde, ya sabes, al insertar un nuevo disco, insertar un nuevo libro, probablemente no los allo pondríamos en un valor para el yo d. probablemente sólo quisiera darles un título. Dales, señor. Dales las capacidades para ingresar a un título. Entra el año, tal vez el número ISBN en tal vez un resumen de todo, pero no son el i d También probablemente para determinar al autor en cualquier cosa. Probablemente no quisiéramos que pudieran cambiar el barco de imagen sobre ellos para poder cambiar el precio y así sucesivamente. Entonces un objeto de transferencia de datos es más o menos lo que llamamos un modelo. Si estamos en NBC lo llamaría modelo en par. El desarrollo lo llamará B t o.Está bien, así que más o menos va a ser como un conducto. Por lo que es una obstrucción más lejos de la base de datos donde estamos controlando qué tipode escarabajo se puede pasar. Entonces estamos manejando esa manipulación después, así que estamos construyendo ese programa. Entonces lo primero que vamos a hacer es incluir Autumn Oper en nuestra Solución. Por lo que vamos a hacer click derecho o proyectar en nuestro proyecto. Perdón por entonces, Goto gestionar nuevos paquetes de get Entonces vamos a Bro's y luego estamos buscando auto Ma Goto gestionar nuevos paquetes de get Entonces vamos a Bro's y luego estamos buscando auto MaPer So auto es un auto y trapeador er en la Semicon Tomar incluir pre release Si hubieras desticketed de un ejercicio anterior en, estamos buscando auto Ma per Así que vamos a seguir adelante e instalar ese Oper otoñal encendido. Entonces también vamos a instalar las extensiones dot Microsoft que la inyección de dependencia . Entonces, solo sigue adelante y empieza eso. Y luego una vez que terminemos con eso, podemos seguir adelante y salir nuevo get así que no, tenemos el otoño superior. No, necesitamos dedo del pie. Hágale saber nuestra aplicación sobre la parte superior del otoño Alguien para seguir adelante y crear una nueva carpeta en Quiero llamar a esta carpeta. Ma pings Así m e p p i n g. tengo un error de gasto ahí, no veo mi cursor. Su mamá se pone pis, luego dentro de esto lleno que vamos a crear una nueva clase sobre. Yo lo voy a llamar trapeadores. Por lo que solo quieres elegir nombres que no choquen con las palabras clave. ¿ Verdad? Por lo que puede que no dé. Puedes llamarlo algo diferente. Tan solo asegúrate de que no se estrelle con las palabras clave. Entonces tenemos mapas de clase pública, y luego voy a decir call on profile. Está bien, entonces me va a pedir que incluya algo que tengo que usar. Otoño superior. Eso está bien en entonces. Bueno, esto es sólo una clase de configuración, así que no estamos del todo listos para esto todavía, Pero sí dejamos que sí necesitamos dejar que nuestra aplicación o bote o aspiraciones de oper otoñal. Entonces vamos a poner en marcha, no CS encendido. Entonces me voy con el dedo del pie. Añádalo todos los derechos por encima de este Strugar. Alguien que diga servicios, puntos ad Oh, demasiado mapeador. Y ahí está, en el fondo de la lista. Entonces en otoño superior y luego quiero decir, teclea, luego llame al lugar el nombre fuera de nuestra clase, que es trapeadores. Así que teclea trapeadores en semi colon fuera de curso adelante e incluya cualquier cosa que necesite ser incluida en. Entonces estamos bien para ir por la parte, así que no, nuestra aplicación sabe que necesita tomar Pratt desató los servicios. A continuación, vamos a hacer algunos detalles. Entonces, ¿dónde no podemos hacer todo bien DT? No, pero voy a encontrarme con los de base y luego, medida que vamos con, probablemente haga otros. Por lo que voy a naufragar, volver a hacer clic, crear una nueva carpeta. Por lo que las carpetas son una excelente manera de mantener juntos tus archivos me gusta. Agita. Se dispara por todo el lugar. Entonces por eso voy a estar creando muchas balas a medida que avancen. Por lo que esta vez lo voy a llamar agujeros DT. ¿ Verdad? Entonces ese es el nombre fuera de la carpeta encendida. Entonces yo interactuaría con la carpeta click add period, una nueva clase on. Entonces quiero llamar a este autor Beatty, o y sólo voy a crear otra clase al mismo tiempo de guardia este libro, GTO. Entonces, para cada clase de datos que tienes cada tabla, ya sabes, probablemente quieras asegurarte de tener objetos de transferencia de beat para que puedas despreciar lo no se debe modificar en ti rastrear lo que se debe modificar en el camino. Muy bien, así que estos son los adeudos de DT base que voy a tener entrada tan real que van a parecerse más o menos a la clase de datos. Entonces en realidad sólo voy a copiar todo esto por encima de la clase de datos en adelante voy a poner en el DT o aquí No es algo bueno. Por lo que tal vez te estés preguntando. OK, entonces ¿por qué necesito clases? Y eso está bien. Esa es una pregunta válida. Eso Acabo de copiar todo desde el autor al autor DDO Todo desde la reserva hasta el detalle del libro . Lo bueno del DT Oh no, es que es Ciudad Baja y cuatro ciertas validaciones desde la vanguardia. Entonces si bien habríamos configurado la base de datos para decir Ok en marzo son 50 te darías cuenta que libro es una cuerda y no hay límite real a la cuerda, por lo que la cuerda podría ser marcas de llantas de environ y podría ser invitar a nuestro 50 podría ser environ Taiwán. No sabemos a este nivel no escuchamos, sin embargo, cuando llegan al GTO, con eso estarán interactuando nuestros usuarios. Entonces, cualesquiera que sean las reglas que establezcamos para la validación aquí, si se requiere o si es, ya sabes, limitada en el número de caracteres que puedes obtener Lo que sea que queremos toe configurar el límite. Um, nuestros usuarios fuera de la A p i para poder hacer, haríamos en el nivel de objetos de transferencia de datos que ves aquí que copié y pegué directamente desde booby para tener una línea roja. Entonces probablemente seguiste adelante e incluyste datos, pero realmente de forma íntima, no quiero que el GTO interactúe directamente con la clase de datos, por lo que los detalles deberían interactuar entre sí. Por lo que tengo detalle de autor. Entonces si necesito alguna representación a menudo autor dentro del detalle de mi libro, entonces el relativo sería detalle de autor. Muy bien, Así que los detalles sobre las clases de datos no interactúan directamente. ¿ Verdad? Entonces por eso tenemos Autumn Oper así que sepan que tenemos que detalles configurados. Está bien, puedo volver a mis mops ese archivo CS y terminar mis configuraciones. Entonces la configuración a la que me refiero aquí es crear el mapeo. Entonces voy a dejar que el otoño sea superior ni que estas dos clases deban poder marcarse directamente entre sí. Y por eso tiene que estar presente la misma columna o nombres de propiedad. Entonces si he escrito una equivocada o si he hablado resumen con una vieja. Pero con eso, terminas en la clase de datos del libro tanto en como en el GTO, luego los automóviles van a ignorar eso porque en lo que respecta al automóvil, no son lo mismo. No están como bien. Entonces cuando estoy sentado en mapas ese CS eso es lo que estamos contentos que estamos haciendo aquí. Entonces voy a decir, crear trapeador y luego abrir soporte angular. Y luego voy a ver que quiero fregar autor y luego guardar coma al autor E T o.- Todo bien. Entonces, después del corchete angular, abro y cierro paréntesis y voy a decir mop reversa de punto. Eso significa que el mapeo puede ir en cualquier dirección. No, ves que tener un número para que aterriza y tengo un error ortográfico. Permítanme describirlo entonces. Yo sólo voy a seguir adelante e incluir todo lo que necesita ser incluido. Entonces después de incluir todo lo que necesita ser incluido, papá y yo vamos a conseguir un Ridley. Oh, mi mal, mi mal. Entonces lo que necesitamos aquí en la clase es Ah, constructor. Mi mal. Entonces deberíamos decir mapas públicos. Por lo que no emigré al constructor. Pedir disculpas. Entonces tenemos o trapeadores de clase de lo que tenemos nuestro constructor encendido. Entonces seamos claros brazo UPI Todo bien. Por lo que sólo puedo crear los dos mapeos. Entonces tengo uno para autor y también detalle sobre entonces estoy con uno para libro Onda Book DT. De acuerdo, así que esencialmente, lo que esto va a hacer es solo yo dedo del pie llene ya sea uno de estos encendidos entonces. Entonces cuando digo Phil, quiero decir, quiero decir, si corro de acuerdo a la base de datos y vuelvo clase de datos fuera del libro Pero entonces el detalle que tengo tiene tal vez tres columnas menos que la clase de datos lo hace. Entonces solo puedo hacer un trapeador directo, y va a encontrar los colores de los mismos nombres poniendo esos datos, ignorar los demás, y luego tengo ah libro Objeto PTO lleno de los datos relevantes. Viniendo de la clase original en el reverso es cierto porque fuera de esta configuración, trapeador inverso, donde los detalles del libro se pueden llenar con datos. Solo necesito mapearlo y se llenará en objeto fuera de tipo libro con datos que luego se pueden pasar a la base de datos. Fuera de curso. Sólo conseguiría ese incendio si las validaciones que configuré en video de libro han sido exitosas. No, sólo el cierre. Vamos a hacer una construcción y asegurarnos de que todo esté intacto en hacer mi construcción. Y veo que tengo que usar un serio así en autor DT o tengo la propiedad y mapeo toe book. Entonces como dije antes bto staff a DT también d t o derecha en lo fresco de los operadores de otoño que una vez que existe la fregona, si tengo que fregar algo, um, del autor GTO pero relativo al libro, automáticamente va a manejar que el mapeo es una biblioteca tan impresionante para ti. Entonces hice ese ajuste y voy a construir de nuevo. Ya veo si me faltan asambleas. No quiero construir exitosamente sobre dso Ya terminamos 15. Revisar y añadir cambios a GitHub: Bienvenido de nuevo. Es ese momento de nuevo cuando revisamos lo que hemos hecho para esta sección y luego revisamos nuestros cambios para conseguir esperanza. Por lo que para esta porción fuera del curso, habríamos creado una base de datos en SQL Server Express el. Después seguimos adelante y cambiamos nuestra configuración de subida para apuntar a esa base de datos recién creada. Implementamos las clases de datos que iban a estar usando para interactuar con las tablas de la base de datos. Y también configuramos Autumn Oper con algunos adeudos DT para asegurarnos de que tenemos la configuración de mapeo para nuestro usuario y frente a nuestra base de datos. Y en nuestro a p I No, sólo vamos a revisar nuestros cambios. Por lo que cada tick rojo representa cambié el archivo. Entonces si ves nuestro lo toma, significa que el archivo ha sido cambiado desde el último pollo. Si ves un candado que significa que no se ha producido ninguna modificación desde que se registró ese incendio . Si ves ese enemigo proceso es que mientras acabas de agregar algo nuevo al robusto erso existente al pollo son cambios. Fuimos directamente la solución click Comprometerle, dale un mensaje para que solo pueda escribir un bonito el mensaje para que puedas pausar el video y escribir el mensaje como lo escribí. Pero siempre los animo a que sean relativamente detallados en su mensaje para que alguien más que venga pueda tener una idea de lo que se hizo con este pollo. No obstante, para checar completamente al igual que esto no están al lado de la palabra commit all y luego ves , comprometer todo en el fregadero en lo que eso hará es comprometerse localmente y luego empujarlo para obtener ayuda . Una vez hecho eso, siempre puedes volver a tu positivo y verificar que tus cambios se hicieron el. Entonces eso es todo. 16. Autores: reposición y servicio: Bienvenido de nuevo. Vamos a empezar a configurar nuestro repositorio de autores ahora. Tan solo un poco de fondo Son los repositorios más o menos como una colección fuera de funciones, ¿ verdad? Entonces cuando hablamos de nuestro autor repulsado o lo que estamos haciendo es configurar una estructura base a través de la cual interactuará con nuestro autor dedo de la tabla, realizar cualquier operación relacionada con la base de datos. Entonces es otro nivel de obstrucción para que no estemos llamando directamente a la clase de datos cada vez. Pero sólo estamos llamando a una función. Andi, esta función se puede utilizar múltiples lugares en. Después nos sentaremos para inyección de dependencia en nuestros controladores para el acceso. Pero también vamos a aprovechar esta oportunidad para configurar un repositorio base. Entonces eso significa que cada mesa, bueno, cada cinta va a llevar a cabo a este tipo. Cuatro fuera de las mismas funciones son operaciones. Básicamente, las operaciones de multitud crean, leen, actualizan y eliminan. Entonces estaremos configurando una base o buster con definición basal ah para estas funciones. Y entonces cualquier otra clase o cualquier otro repositorio más bien heredará un poco de esta base . Empieza con eso. Por lo que primero quieren ir a nuestros contratos Carpeta, click derecho, click. Agregar en Estoy agregando clase el. Realmente estoy sumando bien, clase o interfiere, Realmente estamos creando un interfiere. Pero puedo usar clase independientemente. Andi, voy a llamar a éste. I repositorio BCE. Muy bien, Así que una vez que haya puesto ese nombre, yo repositorio básicamente adelante y haga clic, agregue y espere a que se genere eso. Entonces una vez más, estamos haciendo un interferir, Así que voy a cambiar último el Inter feroz. Muy bien, entonces. Yo sólo voy a decir que quiero que la base sea relativa del pie alguna entidad de clase a la que estoy llamando té. ¿ Dónde? Té. Clase de colon. Partes de esta columna diciendo que este es un repositorio basado en su funcionalidad será relativo al agua una clase a la que digo que es relativa. Y cuando digo clase, sí me refiero a las clases de datos que son los corredores directos. Para la mesa apropiada , todos tendrán sentido. Entonces sólo voy poco por ese estrado. Lo estamos construyendo juntos. Entonces vamos a tener unas funciones de combustible. Um, bien definido, no definido. Declarado en su interior. Fuera de esta interfaz encendido, comenzaremos con esta llamada Find all No, voy a estar usando programación asíncrona para que veas una programación sincrónica, que es, uh, uh, programación paralela técnica que hace muy fácil dedo del pie implementar, y aumentará la capacidad de respuesta fuera de su aplicación en estas operaciones. Entonces sentémonos juntos así toe debido a declarar en una función sincrónica, tenemos que declarar a la tarea y luego abrimos corchetes angulares y luego si está devolviendo valor, y entonces hay que especificar el valor que se está devolviendo o el tipo de datos fuera, se devolverá el valor. Entonces el 1er 1 que estoy haciendo es encontrar todo y quería encontrar todo en forma de lista. Entonces ¿son divertidos las listas? Enumero en eso. Yo quiero la lista fuera tipo t recordar, tés sólo hija relativa, un tipo de clase se está pasando en la derecha. Entonces yo lo llamo encontrar todo. Entonces, básicamente, estoy viendo si se llama a esta función, es una función asíncrona. Debería regresar al menos fuera Cualquiera que sea la clase en la que estoy solicitando, estoy llamando a la función. Entérate. A continuación tenemos una tarea en esta es simplemente devolver una instancia fuera de cualquier elemento de clase o un objeto fuera del tipo de clase que estoy solicitando. Voy a llamar a éste. Find by Heidi on this va a sacar un parámetro off int i d A continuación, tenemos tarea. Perdón. Tarea sobre toro. Por lo que este va a devolver un booleano encendido. Voy a llamar a éste. Crear en qué? Estoy creando una alguna entidad fuera de tipo T. Así que t en adelante, estoy llamando entidad. Ese es mi nombre base para ello. Entonces, cualquiera que sea el tipo de clase, voy a crear una instancia off, ¿ entiendes? Para pasar en el objeto. Está esperando un objeto fuera de ese tipo de clase encendido. Entonces también quiero tener un poco y eliminar los cuales van a lucir muy idénticos para crear . Entonces solo voy a duplicar eso y decir get Andi Deletes Recuerda, Control D es el duplicado Sharkey. Y luego subí una función final llamada Tarea Bull en este se va dedo del pie manija tamizado. Correcto. Entonces la cosa dentro de dos trabajos diferentes al crear, hay que guardar siempre los cambios para ello En realidad comprometido con la base de datos. Ahora bien, este es sólo el repositorio base. No, necesito un repositorio que sea específico de mis operaciones de autor. Voy a seguir adelante en contratos. Crear otro interfiere en. Entonces este se va a llamar yo autor repositorio. Está bien en. Entonces sigo adelante y hago clic, agrego. Pero entonces una vez más, es un inter cuotas. Pero entonces esta interfaz va a heredar de la base del repositorio. Está bien, entonces cuando digo heredar, sólo quiero decir que voy a ver que autor repositorio Colon on on. Entonces agregar repositorio base en entonces t no es lo que estoy pasando pero porque sé que estoy tratando con autor, la entidad exacta será autor Muy bien, así que eso significa que todo lo que se hará dentro de fuera este particular interfiere voluntad relativo al autor. Pero entonces eso es genial. Va a ser así por cada clase de datos que vas a tener un repositorio cuatro. Entonces solo vas a especificar en qué clase de datos está el dedo del pie relativo, entonces tus funciones se van a definir en relación con eso. Está bien, pero esto es sólo otra interfaz. Entonces eso significa que si hay otras operaciones relacionadas con Auster que quiero llevar a cabo, que no somos, ya sabes, no somos parte de la bestia. Entonces la base es solo que ya sabes, se trata de cuatro operaciones que cada mesa va a poder llevar a cabo. Es decir, tener tipos específicos fuera de las operaciones. A lo mejor quiero recuperar autor por un libro que d o algo otro fuera de la norma fuera de la norma de lo que está en la base. Entonces puedo escribir esas declaraciones al revés. Esto interfiere parte en chico tendrá que incluir lo que falta. Ahí vamos. Entonces, una vez más, estas son interfaces, y estas son solo declaraciones. lo que fuera de curso, necesitamos una clase concreta que realmente vaya a implementar estas operaciones. Entonces el contrato, sire se interpone con las declaraciones, pero luego sus servicios. Por lo que tengo una carpeta aquí servicios Estos serán archivos que heredarán. Entonces hicimos algo así con el servicio más largo donde tenía el contrato con las declaraciones fuera de las funciones en entonces el servicio heredado del contrato. Andi realmente puso en las definiciones de estas funciones. ¿ Verdad? Entonces estamos haciendo lo mismo aquí tenemos yo repositorio autor, que está heredando de la base en. Entonces lo que voy a hacer es entrar en servicios en una nueva clase. Andi, Este será autor. Repositorio, haga clic en agregar Entonces voy a hacer que el repositorio herede de Compré Autor Repositorio Justo en. Entonces fui tras incluir uno La carpeta están usando ese espacio de nombre en. Entonces voy a tener el dedo del pie en las definiciones para otras funciones. Entonces eso es lo que es esa línea roja. Entonces si paso el cursor, dirás implementar interfaz y generará todo fuera del método Stubbs dedo relativo lo que se definió. Entonces ya ves, todos estos vienen de B es porque pero heredando yo autor Repositorio, me estoy quitando todo lo que hay en la base. Y luego, si tuviera funciones personalizadas aquí, entonces también tendría el método Stubbs representándolas en un solo lugar. No, puedo realizar una factura rápida solo para asegurarme de que no me estoy perdiendo nada. Y siempre es bueno hacer construcciones después de hacer algunos cambios en la corte porque puede que te hayas perdido algo en el camino o no hizo algo correctamente en una compilación, te informará de ello en evitar que sigas adelante con errores evidentes. ¿ Verdad? Entonces el constructor es exitoso y no, vamos a empezar a implementar estas funciones. Entonces para empezar que lo que necesito es una instancia fuera de mi aplicación db contacto. Entonces recuerda ese contexto de aplicación BB y acabo de abrir el archivo rápidamente. Cuenta con las definiciones de Whole para conectarse a la base de datos. Sabe que estas son las clases de datos en las que debería mirar de punta. Sabe que las configuraciones, junto con la conexión, encadenan todo eso todo lo que está envuelto en esta clase. Entonces lo que necesitamos es un objeto fuera de esta clase, que es nuestro contexto db de aplicación dentro de para Buster para que podamos empezar a interactuar con la base de datos. Entonces voy a empezar definiendo propiedad privada de lectura solo en Va a ser off type application context db on. Voy a llamar al nombre de los objetos en la partitura. DB ¿verdad? No, Después de hacer eso, lo voy a inicializar dentro del constructor. Entonces voy a crear un constructor. Y para ello, puedo leer portátil C t o r y genera un constructor. Entonces esa es una forma de corte agradable, afilada de conseguir tu constructor. Entonces sepan que soy constructor. Voy a decirle que debe tomar un parámetro fuera de aplicación de tipo. Contexto Db on. Voy a llamar al parámetro db Así que uno es subrayado DB y uno solo está BD encendido. Entonces dentro de este constructo, voy a inicializarlo en el marcador. B B es igual a DD, así que esto es lo que llamamos inyección de dependencia, donde declaras propiedad en lo nuevo, la inicializas en el constructor, y luego puedes usar el objeto libremente, en cualquier lugar de su aplicación. Ahora voy a hacer las definiciones son las correctas la funcionalidad en cada uno. Mis pensamientos se detienen relativos. El conjunto que los defino son el orden en el que los definí en la base del repositorio, y hay un particular alguien que lo haga esta semana. Entonces, en realidad, voy a empezar con el save porque esa es la más fácil, ¿ verdad? Entonces quiero hacer guardar y luego lo haremos desde encontrar todo abajo para eliminar en ese orden. Entonces empecemos con seguro, así que quiero encontrar la función de guardar en. Entonces lo que voy a hacer es eliminar esa excepción que se está lanzando y luego vamos a ver var cambia algunas disputas de variable llamándolo cambia, entonces voy a decir subrayado db Así que esos son mis objetos que me permiten interactuar con la base de datos son entidad framework core que brokers todo fuera de las operaciones de base de datos en mi nombre. Entonces este es mi objeto para talkto entity framework. Entonces digo punto y luego me dan un montón de funciones. Por lo que más a menudo, se puede ver la función. Como que deduzco lo que se supone que tiene que hacer. Entonces, como, add, estoy seguro que se puede inferir que el anuncio ayudaría a uto agregar algo a la base de datos. Tienes actualizaciones, tienes borras lo que estamos pasando por ellas. Entonces ahora mismo lo que buscamos hacer es ahorrar. Entonces queremos buscar algo que sugiera seguro, ¿verdad? Han guardado los cambios que tienen. Ver si cambia un fregadero saber la diferencia entre los dos está bien, obviamente uno es asincrónico y uno no es asíncrono. Guardar cambios funciona. Eso está bien. Pero entonces porque estamos usando una programación sincrónica aquí, voy a que aprovechen los frameworks de entidades. Eres funciones síncronas NC que eso guarda cambia un fregadero encendido, luego abrir y cerrar brisa. No, hay pocas cosas que necesitan notar cuando se trata de funciones asincrónicas. Uno. Sí, las definimos como tareas. Pero luego se cierne sobre esta agencia que es Oh, lo siento. Eso es un diferente. Déjame completar la base de la corte y luego explicar el todo Es interesante. Entonces este es nuestro lingote. Entonces lo que se supone que tiene que hacer es regresar. Si hubo cambios, carne no lo son. Entonces si presenté algo a la base de datos que framework de entidad, cuando no guarda cambios, debería decir que sí, hubo un cambio de casa. Se cambiaron algún registro o algo así, ¿verdad? Entonces si no se cambiaron registros, entonces eso es de ese es nuestro problema, ¿ verdad? Por lo que quiero volver a nuestras cataratas. ¿ Fue su problema o no? Si hubo registros cambiados, entonces todo está bien. Por lo que eso volvería cierto. Por lo que sólo voy a escribir cambios de retorno mayores que cero. Correcto, Así que esto es un bonito y dedo del pie una línea manera de salir viendo cheque. Si los cambios fue Gran Bretaña y cero y luego devolver el resultado fuera que No, estoy viendo por error aquí. Entonces es decir que no puedo, um, regresar básicamente esta área, decir que es que estoy regresando tarea a, um Pero algo está dentro. Por lo que esta zona no está realmente clara. Entonces en eso estoy explicando lo sincronizado. Por lo que este error realmente no te dice cuál es el tema. El tema es que cuando haces una llamada asíncrona, está regresando. Y si se pasa el cursor sobre estos cambios es tarea. Es de recordar que tenemos tarea Bull aquí. Es devolver tarea tarea int, pero luego para esta operación toe suceda, necesita un int. De acuerdo, así que esencialmente está diciendo que, ya sabes, los tipos de datos no hacen mucho. Entonces cuando estamos haciendo y una llamada de función sincrónica, ya sabes, para conseguir sobre el tipo concreto, como en volver y en un no una tarea en, tendré que proceder con la palabra clave esperar entonces eso es otro tema en sí mismo porque no me va a decir que no se puede hacer en cómo sin y una función de fregadero. Entonces la sugerencia aquí se haría el método un fregadero, que está introduciendo la palabra clave persiguiendo público y notar todo. No se va. Todos los errores ahora desaparecen. Entonces déjame solo un poco de todo eso arriba Uno. Cuando eres un dedo del pie del barco, define sobre la función asíncrona. Tienes que decir flexibilización le das el calificador, por supuesto, tarea de enfrentamiento público y luego para volver tipo. Y si es nula, entonces no habría tipos de devolución. Simplemente sería tarea en. Entonces save will Save es un nombre de función. Por lo que necesitas la palabra clave, un fregadero, la tarea de palabras clave. Si hay un tipo de datos involucrado, entonces lo pones en los corchetes angulares. Si no, entonces no lo haces. Y luego tienes que asegurarte de que realmente vas a estar llamando a algo que es un sincrónico dentro de esa definición. De lo contrario, estarías bondadoso obsoleto para tener el a fregadero en la tarea. Si realmente no estás haciendo una operación asíncrona, correcto, cada vez que vas a estar haciendo la llamada a función, tienes que proceder con la palabra clave esperada. Me di cuenta cuando no escojo nuestra, eh, eh, creo que delegados automáticos resaltaron para que los dos de ellos funcionen bien juntos. Entonces si no tienes ninguna causa de función asíncrona aquí, entonces no necesitas una función asíncrona prácticamente bien. No, el siguiente en el que vamos a trabajar es el hallazgo. Muy bien, Así que sólo vuelve a la base y asegúrate de que sí salvamos bien? No, vamos a mirar encontrar todo así y encontrar todo. Quiero devolver una lista de autores. Quiero devolver todos los autores que actualmente son la base de datos, así que voy a declarar una variable de nuestros autores igual a en Entonces me fui. Es porque pretendo usar en función asíncrona justo en la puntuación db dot on diciendo subrayado d B que tengo acceso a todas las clases de datos que se habrían definido en el contexto db. Entonces tengo una cita. Una clase llamada autor sobre las propiedades llamadas autores, Derecho, Así que eso es una propiedad. Entonces db dot autores en sólo el doble cheque de nuevo sus autores, porque así es como lo llamé aquí. Ese es el nombre del inmueble, el autor de las clases. Pero las propiedades son terceras porque la conexión fuera de los autores Muy bien, así que d ser autores no puntan. Yo quiero al menos algunas solo fantasía para enumerar que se hunda, Entonces recuerda, si voy a esperar. Entonces necesito preceder la tarea con la palabra clave un fregadero. Está bien, ahí vamos. Todo el aire se ha ido. No, esta zona sigue aquí porque está diciendo que es la necesidad de devolver algo, Así que espero que devuelva una lista. Autor. Entonces esta es la lista en entonces? Yo sólo voy a ver a un retorno autores. Por lo que una vez que se llame a esta función, va a devolver una lista de objetos fuera de tipo autor, Muy bien, organizaciones benéficas. El siguiente sería multado por I. D. Así despedido por I d será bastante sencillo dedo del pie implementar. Sería similar. Entonces este está esperando un parámetro apagado i d. Así que voy a salvar a nuestro autor porque estoy esperando encontrar a un autor a través de esta función on. Entonces voy a ver un peso en la puntuación db dot autores Así que mirando al autor estable en , entonces quiero que encuentres que está sincrónicamente encendido. Entonces solo necesito pasar en el i d son así el hallazgo que tienes encontrar y encontrar un cantar más o menos qué disfunción hace, es, um, busca en la base de datos o busca en esa tabla cualquier elemento que tenga el clave primaria que coincida con esto. Por lo que sabemos que la Primerica se llama idee. Eso lo sabrá automáticamente. Por lo que se espera que pasemos yo devaluo. Se supone que esa es una clave primaria, y luego la encontrará encendida. Entonces esto se espera en objeto off type author. Por lo que nos habríamos metido en los registros de autor. Tenemos que regresar. Autor. Ahí vamos. Está bien, está bien. Entonces vamos muy bien. Siguiente arriba sería crea un poco de escuela, pero dedo del pie un repositorio, encontrar o crear en. Entonces en este, habríamos sacado a alguna entidad de los autores de tipo. Lo que queremos hacer es crear un nuevo registro de autor usando esos datos en Es bastante simple. Entonces lo que haría es subrayarlo db dot autores puntos agregan. Así que tienen cualquiera, pero luego se pone lo que Hemos tenido un fregadero. Entonces bien podríamos usar en un fregadero, ¿verdad? Entonces en un fregadero. Y luego pasé en la entidad que está a punto de agregarse. Está bien, en ese entonces, si lo hago en un curso de cantar fuera de curso, necesito un peso puesto. Entonces la cosa final después de que tengas. ¿ No es esta llamada? Ah, tengo una espera y piensan también que es un público un fregadero, Así que es fácil olvidar que es fácil escribir una y no recordar la otra. Pero te puedo asegurar bizarro studio siempre te recordará que lo necesitas encendido. Entonces lo último aquí sería devolver el lingote. Entonces, ¿qué pasa que después de hacer esta operación, hay que guardar los cambios? Y tengo ah, función dedicada a solo llamar a guardar cambios, que en efecto, es en realidad son, um, en la función sincrónica. Por lo que necesito devolver cualquier valor que esto devolvería. Por lo que el lingote que se espera es ah lingotes pariente. Si los cambios se guardaron con éxito no son así lo que voy a hacer, solo dices volver y luego estoy llamando a una función de fregadero. Entonces esta vez es mi función de enfrentamiento. Me refiero a esta función asíncrona. Pero una vez más, si estás llamando a una función asíncrona, tienes que esperar en eso. Yo sólo voy a llamar a guardar derecha, así que va a hacer la entidad. Si la operación del núcleo F y eso va a llamar a mi función, espere los resultados y luego vuelva a encenderlo. Entonces para cuando regrese, estaría devolviendo lingotes en todo tipo de fuera. Cosa maravillosa. Este es solo un gran ecosistema agradable y es realmente genial de entender. Muy bien, así que a continuación después crea, tenemos actualizaciones que eliminar. Entonces déjame solo hacer actualizarlo. Entonces sea más o menos un directo, como agregando, Excepto que tienes db dices subrayado db dot autores Pero entonces no hay esperanza Bit a think. Entonces, en realidad es sólo eso un poco encima. Entonces estás llamando a la entidad que se está actualizando, um, o estás mandando la entidad que debería, ya sabes, ser necesaria en. Entonces te vas a hacer el CMC. Si los cambios fueran, devuelves un trigo seve y luego fuera de curso si estoy esperando que necesito una serie think esencialmente. Si no declarara esto como un fregadero, entonces no tendrías sentido. Tengo esto como cualquier cosa falsa. Está bien, así que bien, aquí está toda la operación asíncrona es mía en entonces es el mismo tipo de dinámica para eliminar tanto ajuste para copiar esto en lugar de escribirlo todo de nuevo, ve a eliminar pegado, pero en su lugar fuera de la actualización. Voy a estar quitando así para borrar, se quita. Eliminado. No tiene en función de perseguir, facilitar versión a la misma. Por lo que se quita la entidad el. ¿ Crees que toe elite la operación de guardar en Eso es todo. Habríamos concluido sentados fuera de la línea base Operaciones croatas para nuestra mesa de autor. Correcto. Por lo que a partir de aquí podemos crear un nuevo autor que podemos eliminar sobre autor existente. Podemos encontrar a todos los autores o encontrar a un autor específico. Se pueden guardar todos los cambios fuera de curso que se requiere en también podemos actualizar en Autor es datos. Está bien, así que eso es todo por sentarse. Nuestro autor Buster pasó bastante, pero hicimos algún trabajo base aquí que no necesitaremos repetir de nuevo porque para cualquier otro repositorio que se esté configurando, ya tenemos la base por lo que no tendremos que rehacer la base cada tiempo. El todas las diferencias sería que necesitamos entrar y escribir el tribunal específico dedo del pie esa clase de datos. Ese repositorio se está construyendo para 17. Autores: controlador de configuración: Oigan, chicos, bienvenidos de nuevo en este video, vamos a estar configurando nuestro controlador AP para nuestros autores. Ahora, antes de que empecemos con la configuración de eso, hay algunos. O hay al menos una configuración más que necesitamos llevar a cabo antes de poder comenzar con éxito a configurar nuestro control. Y eso está en la puesta en marcha, no en el archivo CS. Entonces cuando llegué a empezar sobre CS, voy a estar bajando a la sección de servicios on. Lo que necesito hacer es agregar a nuestro inicio el hecho de que necesitamos una instancia de ámbito fuera o repositorio. ¿ Verdad? Entonces esto nos va a ayudar con nuestras inyecciones de dependencia. Voy a decir que el servicio es ese anuncio marcado. Está bien, en ese entonces siempre se puede un bistec. Miro lo que significa alcance, pero son como se define. Pero yo tenía alcance. Lo que necesito decir es, estoy analizando el repositorio del autor, el repositorio autor del ojo, Andi, Andi, el repositorio del autor, ¿ verdad? Entonces lo mismo que hicimos con el servicio seis con el servicio más largo excepto el servicio más largo sumado tiempo único. Esta vez está en alcance en. También has tenido transitorio Ahora cada versión add sculpt, transitorio son singletons Cada uno tiene su propio camino fuera Trabajando hasta ahora horas que alcance con mis operaciones de datos puedo incluir la lectura sobre cuál es la diferencia entre cada So on body haciendo con eso? Um pero cuerpo de conocimiento. ¿ Verdad? Saber Así puedes hacer esa lectura más adelante. Pero solo haz este esculpt anuncio. Y había Pasching I author Repositorio Onda, author Repositorio on Si necesitas incluir algún espacio de nombre que falte entonces adelante y hazlo . Sé que está en el archivo de inicio. Puedo saber inyectarlo cómodamente como una dependencia en cualquier otra clase que se utilizará en el alcance fuera de este proyecto. Entonces el que me estoy refiriendo específicamente a conocer es nuestro controlador. Entonces conseguimos nuestro deporte de controlador y ya tenemos un controlador de casa, que yo estaba usando como control de prueba. Entonces si quieres quitarlo, ¿puedo dejarlo ahí? Es nuestra prueba, así que podemos eliminarla más adelante cuando nuestra aplicación realmente floreció en algo. Entonces en este momento solo voy a seguir adelante y haga clic derecho y haga clic en Agregar controlador en entonces. Esta vez quiero un controles vacíos. No quiero que ningún controlador con funciones predefinidas para mí estará escribiendo sobre cada endpoint nosotros mismos. Correcto, Así que un controlador de par vacío en, luego haga clic en agregar Quieres asegurarnos de que le damos nombre para que el nombre sea autores . Por lo que autores controlador, creo como extraño. Y cuando se complete esa operación, tenemos nuestro controlador del FBI que tenemos o ruta, que es el dedo autores sería un p I slash autores. Es así como llegas a este controlador. Muy bien, ahora, mientras estamos aquí estaremos haciendo algunas configuraciones basadas una vez más porque estaremos construyendo todos fuera de los endpoints en videos separados por separado. Pero ahora solo quiero hacer cosas tan ciertas para que sepamos exactamente lo que hará este controlador, y luego podamos previsualizarlo en la documentación. Entonces uno quiero un resumen alguien a en un resumen, acabo de escribir eso Oh, rápido segundo video positivo y copiado. Si quieren nuestra tortura y resumen, um, otras cosas que voy a hacer o lo siguiente importante que voy a hacer sería inyectar la dependencia del repositorio del autor. Por lo que necesito una propiedad privada de solo lectura fuera del repositorio de autor tipo I. Está bien. Y por supuesto, si necesitas incluir bibliotecas, sigue adelante y haz eso. Entonces lo voy a llamar autor. Repositorio subrayará al autor Buster porque, ya sabes, esa es solo mi convención de nomenclatura para propiedades privadas. Muy bien, entonces, uh, uh, eso es subrayado, Repositorio de Autor. Y luego necesito un constructor. Recuerda, tenemos c tour en entonces que generoso un constructor on. Después pasamos en un parámetro. Algunos solo quieren copiar y pegar que simplemente se mueven rápidamente. Eso está en el marcador. Andi Dentro de nuestros constructores, donde inicializamos la dependencia es tan tanta dependencia sea como podrías tener, podrías necesitar más de un repositorios representados en el controlador CME. Por lo que solo agrega tantos y asegúrate de ponerlos como parámetros y luego inicializarlos aquí. Entonces es subrayado. Repositorio de autor es igual al valor que pasaría la aplicación. Entonces así es como funciona la inyección de dependencia. Habríamos definido nuestro servicio y nuestro contrato le hicimos saber a la aplicación que el servicio en el contrato se deshuesan entre sí. Entonces lo que sea que vea esto de lo que debería saber que interactúa con esa clase basada en. Entonces dentro de un controlador de cuatro, sólo podemos pasarlo. Tenemos nuestro objeto privado, pero entonces se está inicializando por lo que sea que el arranque CS esté pasando. Eso es más o menos dependencia. La inyección una vez más dot net core hace que esto sea muy fácil. Ahora, otra cosa que quiero definir un barco o control. Y esto es realmente para fines de generación de documentación. Una vez más, quieres asegurarte de que tu documentación sea realmente buena para quien vaya a consumir tu a p I. Así que te voy a mostrar una más. Esa notación que puedes agregar a tu controlador en eso es decirle al documento que produce tipo de respuesta el entonces. Entonces los tipos de respuesta básicamente se refieren a los cordones http para que tengas 200 para bien, 400 para mantequilla. Pregunta etcétera. En los diferentes tipos de respuesta se encuentran las escuelas de estatus. Entonces sabemos que uno comenzó la escuela que obviamente vamos a regresar. Va a ser el status 200 así que puedo decir códigos de estado porque nos dieron Ah, enorme, ya sabes. Entonces estamos tartamudeo puntajes Dots on. Entonces desde esta Eelam, sólo puedo ver el estatus 200. De acuerdo, entonces eso significa que cada vez que alguien mire el documento para esto, sabrán que al menos esta respuesta que se puede devolver. Así que vamos a salvar nuestro, ya sabes, sólo construir. Asegúrate de que no rompimos nada en entonces eso va a modo de depuración. Y mira la documentación que se genera hasta ahora en el documento no está reflejando nuestro Todo bien, ¿ OK? Sí. Entonces quiero decir, han sido un poco de retroceso. Por lo que nuestra documentación para nuestro a p un controlador para autores no aparecería todavía porque no tenemos puntos finales para la documentación. Entonces Songer lo está ignorando porque literalmente no hay nada a los documentos. ¿ Qué? Entonces cuando empecemos a construir sobre los extremos del FBI, entonces empezaremos a verlo aparecer en los documentos. Entonces eso es básicamente Ford sentado fuera del controlador en su, ya sabes, nivel mínimo. El siguiente operativo sería empezar a sentarse o a conseguir puntos finales, y luego empezaremos a ver la verdadera belleza fuera o cobrar vida al controlador de autor 18. Autores: configuración del punto: ustedes chicos. Bienvenido de nuevo en este video, vamos a empezar a configurar nuestros endpoints get para nuestro controlador de autor. No, me perdí un paso en la configuración base para los controladores donde debería haber incluido el servicio más largo. Entonces vamos a estar registrando. Se apartaría del camino, la interacción o la funcionalidad fuera de nuestro AP y FBI, causa Entonces lo que voy a hacer es introducir en madre Privada Leer solo objeto en este va a estar fuera tipo I service on, entender? Para llamarlo subrayado más tiempo en. Entonces voy a en el constructor en otro parámetro. Desesperaré la línea para que no me vaya demasiado lejos, y va a estar fuera de tipo. Yo más tiempo de servicio. Por lo que sólo estoy introduciendo esa dependencia en. Entonces sólo voy a ver el guión bajo más largo es igual dedo del pie más largo. Muy bien, así que ahora he inyectado el servicio más largo en el controlador A p I en prácticamente cualquier otro controlador APEC. Bueno, al menos si pretendes registrar lo que está pasando, necesitaría tener esto como dependencia también. Muy bien, así que empecemos. Entonces quiero Ah, en punto final por conseguir todos los libros. Sé que vamos a empezar a mirar verbos. Por lo que yo hubiera dicho ahí en la introducción que sí tienes unos verbos que tienes, conseguir post puesto puesto y bueno, posponer y borrar. Entonces lo primero que quiero hacer es dejar nuestro control o norte a través del edificio y notaciones que soy ido a definir un http, get function. Y eso es literalmente todo lo que tienes que escribir. Http. Obtener. Está bien. A continuación, voy a decir que quiero un público una tarea de fregadero. Andi, quería fuera resultado de acción tipo I. Entonces los resultados de acción es el que si usas si estás acostumbradoa M v c web regular, NBC de lo que sabes, resultados de acción. De hecho resulto es un poco de extensión off opción resultados reunión Tienes más que puedes regresar. Por lo tanto, resultados de opción. Podrías regresar tanto. Yo sé más. No. En los resultados de mis subastas, puedes regresar aún más, sobre todo en el contexto fuera del FBI, donde estarás regresando ciertas cosas. No volvería en una aplicación NBC, Así que tarea me resultados de acción. Voy a llamar a éste. Consigue libros. Perdón. Obtener autores. Mi capullo. Así lo están consiguiendo autores. Este es el controlador autor. Entonces estamos haciendo que los autores me lastimen la espalda. Entonces estamos consiguiendo autores y luego solo voy a agregar un resumen por encima de esto rápidamente. Entonces este lo voy a ver bajar autores. Entonces me resulta más fácil simplemente, ya sabes, hacer la documentación que empezó entonces, ya sabes, refinarla a medida que avanzas. Pero al menos comenzó cuando estás haciendo la cosa sí lo pones ahí para que no te olvides de ello. Entonces eso es obtener todos los autores y devuelve lista de autores. Muy bien, Aan den. Lo que necesitamos definir aquí sería el funcional que se quiere invocar. Entonces recuerda que no estamos interactuando con nuestra clase de datos directamente estaban interactuando es DT Además, el controlador habla con la DEA para transferir objetos Autumn Oper con mi entre los objetos de transferencia de datos bajo autor. Entonces nuestro repositorio va a llamar al objeto de datos en la situación en la que vamos a fregarlo al objeto de transferencia de datos en, luego devolver el objeto de transferencia de datos a quien esté llamando a esto un p I Así que veamos cómo va eso dedo del pie trabajo. Entonces empiezo por ver autores de barras es igual a en estoy llamando a una función asíncrona. Como digo Await subrayado Autor reporta historia atracada para obtener todos los autores Tengo la función encontrar todo bien, ahora que he conseguido todos los autores, necesito toe mop a mis objetos de transferencia de datos fui a ver var Oh ther o will var eso es respuesta es igual dedo del pie sobre dso Esa es otra dependencia que voy a necesitar. Por lo que habría incluido a Autumn Oper en el archivo CS en el punto de inicio. Entonces no, puedo tomar esta independencia. Entonces ya ves, a medida que avanzas, vas a encontrar que necesitas diferente dependencia es de Es el mismo proceso. Simplemente incluye una instancia de la misma. Entonces estamos lidiando con Ah, me fregó er así que solo duplicé esa línea y estoy escribiendo. Yo frego er y voy a llamar al objeto mi per on. Entonces voy a hacer lo mismo aquí donde voy a introducir una coma y luego estoy arriba a mi lista fuera de parámetros Andi asumir backtrack Andi, cambiar hacia fuera. Entonces solo estoy haciendo esto rápidamente. Por lo que copiar y pegar es tu amigo que cuando quieres hacer las cosas rápidamente. Pero solo puedes incluir cualquier faltante, um, um, espacio de nombres o usando Autumn Oper. No, tenemos la parte superior de otoño inyectada en su aplicación. Podemos empezar a usar la parte superior del otoño. Entonces cuando quiero fregar, diría subrayado trapeador er no trapeador. Está bien, en ese entonces voy a decir que quiero fregar. Entonces, si solo miras el incidente de definición que los mapas de puntos es ¿cuál es el destino en el que quieres un dedo del pie del mapa? ¿ Cuál es la fuente? Entonces quiero TEM arriba del dedo una lista fuera. Bueno, señor, objeto de transferencia de teatro. Nuestro detalle de autor es lo que lo llamamos. Entonces la fuente serían autores. Está bien, así que me estoy fregando el labio. Mis autores regresan de la base de datos dedo menos del pie del tipo de objeto de transferencia de datos. Recuerdo ese objeto de transferencia de datos Una vez más, te amo para controlar qué datos quieres. No son así en otras palabras, que este es un registro completo fuera del autor. Pero y si sólo quisiéramos enviar de vuelta algunos fuera de las propiedades son las columnas, algunos fuera de los datos y no todos los datos. Si yo en mi autoría DT Oh dijo que dejé el i d encendido. A lo mejor no incluí la bio. Yo sólo quería el nombre y apellido. Si esas fueran las únicas dos propiedades que tenía en el objeto de transferencia de datos, entonces esta operación aquí diría que sí, estoy obteniendo cinco propiedades, pero sólo estoy tomando toda la herramienta que importa en relación con la clase en DSO. Lo que sea que devuelva a la persona que llama serían sólo las propiedades que el objeto de transferencia de datos ha definido. Entonces eso es lo que los objetos de transferencia de datos aleación hacer. Permiten controlar qué datos se presentan realmente a la persona que está llamando al FBI relativo a lo que realmente viene de la base de datos. No. Después de haber hecho una base de datos, cráneo la fregó. Lo siguiente que probablemente querría hacer es regresar, Así que quiero devolver la respuesta. Por lo que hay funciones construidas para el tipo de respuesta. Entonces si alguien hizo una llamada para conseguir autores, entonces devolvería la lista de autores con nuestra respuesta enfriada. Está bien. Está bien. Entonces eso es como un AP universal. Me encanta que cualquiera construyendo una aplicación alrededor de un P. Yo sabría que cuando vean a 200 respuesta, está bien. Entonces todo salió bien, Así que yo diría, OK, porque, bueno, ese Nick o un P me di esa función de construcción en. Yo diría, Aquí está la carga útil con la respuesta ahumada. Correcto. Por lo que el dolor sería los datos de marcha o la lista fuera de autores por lo que regresa. OK, entonces volvemos. El Señor. No, quiero presumir que esto un poco. Por lo que quiero agregar un poco fuera de registro y un poco de manejo de excepciones también. Por lo que siempre trato de poner en pista las capturas. Correcto. Entonces intentas operar, y luego atrapas cualquier excepción. Entonces lo que yo haría aquí es probar todo esto. Muy bien, entonces. Lo que voy a hacer es decir que lo pruebes a su regreso. De acuerdo, encendido, entonces, si hay una excepción, quieres atraparla, así que la excepción sigue, entonces puedes Verdadero, Pero prefiero tal vez solo contestar para que así no bloquea la aplicación y ve, um, regresar por solicitud. Nuestro más bien yo no devolvería una pregunta de mantequilla. Probablemente devolver algo así Así preguntas de mantequilla 400 pregunta de mantequilla sugeriría que la persona que llama o el cliente conformado por la petición al servidor, que no es necesariamente los niños porque sólo solicitaron una lista de autores. Hay muy poco que pudieran hacer mal encendido y si golpeó aquí y algo salió mal con nuestra operación y no queremos decirles que se trataba de una solicitud, Pero queremos quizá sugerir que algo salió mal por todos lados. Por lo que tienes el estatus de causa de función anotado, correcto, y luego puedes pasar en la cancha. Por lo que aquí es donde llega el aprendizaje de algunos de los números. Por lo que el error interno del servidor es 500. Creo que 501 es puerta interna con Hay algo que s así los diferentes números están ahí. No digo que debas memorizar cada número ahí. Ciertos números que vas a estar usando una y otra vez en algunos fuera de ellos están construidos como OK y la mala petición y ese tipo de cosas están integradas, pero, ya sabes, es bueno saber los números y aguanta el dedo ya sabes, maniobrar alrededor de ellos. Entonces digo aquí que cuando intentas conseguir a todos los autores, si hacemos todo bien, obtienes la respuesta 200 con los datos asociados a una llamada. Si algo sale mal, sin embargo, voy a decir Bueno, sólo te estoy enviando sobre ese error 500 para decir que algo salió mal para ver si hay encendido . Incluso hay una anulación. Entonces incluso puedes darles, ah, ah, mensaje para guardar algo Así que probablemente puedas decir que algo salió mal. Póngase en contacto con el administrador. Está bien, así que esas son pequeñas cosas que puedes agregar a tu FBI para que sea un poco más personal de lo que solo sabes, yo robot respondiendo a la gente. Lo siguiente que voy a hacer es agregar algo de registro, así que quiero amar en dsi. Subrayar punto más largo En cuatro, largo en cuatro en, ¿ entonces qué? Yo quiero iniciar sesión cuando la persona hace ah auto. Por lo que esto va a cumplir con la convocatoria. Entonces cuando golpea los intentos yendo dedo del pie log y dicen que esto se intentó. Así que intentó, um, consigue a todos los autores, así que no hay forma real de ella. O sea, es tu tiempo tienes razón, los mensajes que quieres. Está bien. Incluso puedes poner tal vez un tocón del tiempo. Entonces sólo voy a usar la interpolación. Bueno, ya hay una marca de tiempo incorporada en el registro, realidad. Por lo que solo digo intento conseguir a todos los autores en entonces justo antes de la respuesta okey, diría más tiempo. Eso es iniciar sesión cuatro en. Probablemente vería éxito 40 Dios's off autores. Por lo que saben que esa convocatoria fue exitosa. Está bien, Así que ya sabes, puedes introducir esos registros en cualquier lugar que consideres necesario. Yo sólo estoy poniendo esos ahí, por ejemplo, sake. No tienes que registrarte cada pequeña línea así. Um, en realidad puedes soplar al archivo del amor. Pero entonces donde se vuelve muy importante para mí estaría en el in the tri on the catch in the church part. Perdón. Entonces justo antes de que regresara que era ah, en flecha. Desearía iniciar sesión para fines de auditoría interna punto más largo registro de puntos. Terrible porque atrapó en excepción lo en entonces los detalles que estoy poniendo en esto serían y acabo de usar inter contaminación aquí. Diga, um e así sería mi renta de objeto de excepción. Entonces quiero registrar lo que el aire real awas ce ese mensaje puede ser, pero e no en la excepción. Entonces a veces tienes que comer ese mensaje encendido. Entonces tienes que comer esa excepción interna con más detalles. Entonces si alguna vez hay una época, quiero ver lo que ese aire awas, Andi tal vez cualquier otro detalle necesario. Y entonces podemos decirles que fue un conde interno. Es después de todo que sólo podemos hacer una compilación rápida, asegurándonos de que todo esté bien en. Una vez que eso ha sido exitoso, podemos simplemente entrar en depuración más que ver si nuestro autor controlador del FBI y no hay presencia en nuestra documentación. Y ahí vamos. Por lo que tenemos autores no listados en. Vemos nuestro a p. Llamo a p Corto autores y nuestro resumen conseguir a todos los autores en. Entonces vemos aquí que bueno, el cordón, sabe que va a volver es 200 éxito. Entonces podemos más, um, informante de que, ya sabes, tendríamos el potencial fuera 500 en otras cosas. Entonces lo genial del slugger es ese jadeo. Te rebajo para probar la a p. justo aquí en el folleto. No Cartero permite que haga ciertas cosas que el futbol no te permite hacer, o es más difícil hacerlo. Soldados es bueno tener ambas herramientas a la mano, así que vamos a probar sobre una p a derecha saber que alguien va a negociar votar, luego haga clic ejecuta. Dice No se requiere Parlamento. No hay problema. Ejecutamos sobre Dwell. No hay autores en nuestra base de datos, realidad. Y verdaderamente así todo Bueno, en realidad funciona. Entonces la pregunta donde estaba l que era nuestra operación get en el cuerpo de respuesta estaba en blanco porque no había autor en la base de datos de todos modos. Pero sí vemos que nuestra respuesta llamada fue 200. Lo que voy a hacer es que me fui toe botch algo en la definición para nuestras conexiones de base de datos . Y luego voy a tratar de forzar a 500 aire a alguien del tipo. Yo estoy haciendo esto. Puedes hacerlo conmigo, Pero sólo asegúrate de corregir a Philia Theron. Um Pero si no quieres hacerlo, no hay problema. Sólo puedes cuidarme. Entonces solo estoy cambiando el molesto para que se sienta en la conexión de base de datos en estoy tratando de forzar a un interno a salir, um, error del servidor. Entonces volvamos al modo de depuración e intentemos eso de nuevo. Esta vez cartero divertido tan atacado en la URL que sería el host local en el número de puerto slash ap i slash autores. Por lo que puse eso en la petición en ditz. Obtengo operación y hago clic en enviar en su tratando de pasar. Entonces ahora ves que me está dando sobre el mensaje. Algo salió mal. Por favor, póngase en contacto con el administrador en el código de estado es 500 para decir flecha interna del servidor. ¿ Todo bien? No, lo último que voy a hacer es sólo mirar el registro de verdad rápido, sólo para mostrarte cómo se ve eso al solo echar un vistazo al fuego de troncos. Ya ves donde decía OK en por intento de conseguir a todos los estudiantes o Lo siento, todos los autores Mi mal. Y luego fue exitoso en. Después pasó la segunda llamada. Se intentó poner a todos los autores, entonces estamos viendo la flecha donde está. No decirnos una red relacionó esto que eso eso en entonces está bien, este punto debió haber sido para la señora interior Así que este fue el mensaje encendido. Entonces dije, Dash, dame cualquier mensaje interior En la excepción, no había ninguno. Pero esto sería suficiente para que nos vayamos internamente. Por lo que no quieres decirle a los usuarios los detalles de por qué falló necesariamente. Pero quieres mantener alejado camión, qué caldero encendido, entonces por qué? Entonces esta es una buena manera de saber por qué. Entonces eso es, uh, estas son solo algunas cosas buenas que poner en tu para ir y buscar el camino. Perdón por el archivo de registro, pero déjame solo asegurarme de que estoy saliendo del modo de depuración activado asegurándome de corregir el archivo de configuración de APP Así no vuelvo a encontrarme con ese problema. Andi. Entonces esa es una buena manera, una buena introducción a configurar nuestro primer endpoint. Entonces eso es conseguir autores. El siguiente sería conseguir autor, que sería un solo autor, por lo que va a ser bastante similar. También está en http. Ponte así solo me voy con el dedo del pie. Copiar esto en. Entonces voy a ver http. Obtener. Pero entonces éste yo quería hacerle saber que este get requiere parámetro. Entonces, en cualquier momento que tengas un parámetro uno o más parámetros, ya sabes, solo puedes escribir el padre para apoderarte de comillas de pátina, y luego usando abrazos actuales, indicas el parámetro o los parámetros. En este caso, sólo estamos teniendo en idee ¿cuánto? Yo sólo quiero copiar todo fuera de esto. Esta función de manera diferente, hijo. Aparecer. Sí, aún así, muévete un poco más rápido. Asegúrate de que obtienes may, um llaves, tarjeta de llaves de crédito. Para que puedas escribirlo. Te lo dije si quieres. No tienes que hacerlo. Copiar y pegar. Déjame y tendencia hacer control de daños. Pero entonces lo que quiero hacer es cambiar esto de conseguir autores para conseguir autor. Y luego también quiero especificar el parámetro que se requiere. Entonces estoy consiguiendo autor, verdad. Y estoy esperando un parámetro de tipo I D encendido. Voy a dejar que el A p yo controle. Sé que esto consigue requiere un parámetro de tipo I d on. Entonces, ¿qué? Voy a estar haciendo aquí es alma muy similar. Um, déjame solo copiar al logger asesinado, y voy a ver información más larga y tentado a conseguir, y entonces puede ser lo más profundo de Teyla que quieras poner al autor con. Entonces voy a decir que d colon. ¿ Verdad? Entonces estoy registrando exactamente lo que se intentó con el i d. Y entonces solo voy a especificar el i d que entró a través del parámetro por lo que intenté conseguir también con idee que justo en entonces bajo que voy a salvar a nuestro autor es igual a Ah, espera en el marcador. No me gustaría BB autor, derechos de repositorio no encontrar por i d Y entonces me acaba de pasar el i d. Muy bien, Entonces voy a ver que mi respuesta será servir respuesta de ira es igual a y luego subrayar mi trapeador de puntos superiores . Y luego esto soy un huevo trapeador. Una sola instancia fuera de autor. Entonces la última vez que hicimos el autor menos off detalló esta vez solo siendo una sola instancia fuera del autor DT o así mapeando eso al autor que fue recogido. Después fui a responder. Perdón, estoy con el regreso bien con esa respuesta. Está bien. Entonces por supuesto que quieres agregar el registro aquí para ver exitosamente consiguió autor con ideas. Por lo que exitosamente consiguió autor con Eddie. Está bien, así que es bueno tener bonito registro de detalle para que incluso alguien más pueda mirar los registros y entender lo que estaba pasando. Pero vamos a hacer un poco más en esta operación. Entonces una vez más, tenemos o intentamos atrapar como siempre. Entonces déjame que acabo de conseguir ese try Top genera ese stub. Entonces voy a probar todo esto. Está bien, Así que en la sección de gatos, me gustaría definir la misma lager y comenzó mensaje anotado. Pero entonces siento que me voy a repetir porque voy a hacer esto también están en otras funciones. lo son otros puntos finales. Lo que voy a hacer es crear una función y la voy a llamar privada, y va a ser fuera de tipo status school, los resultados. Entonces la razón por la que usar el status buenos resultados es que va a estar regresando estas cosas a la escuela, que es más o menos un resultado escolar status Tipo de datos Enseguida. Voy a llamar a este un giro de era interna. No, Uh, y va a tomar ah, parámetro de cadena llamado mensaje. ¿ Verdad? Entonces la expectativa aquí es que manejará el tala en ella también, le devolví el inicio de la escuela que se requiere. Entonces permítanme decir que en primer lugar, quiero que el amor del dedo más largo sobre el error porque esa es la única razón por la que se llamaría a esta función . El mensaje es lo que se va a amar, ¿verdad? Así fue después. Asegúrese de tener un pase apropiado o un mensaje cada vez en este automóvil. A continuación, sólo vamos a volver a tartamudeo. Anotó con el con el error. Onda. Andi, estoy recibiendo un error aquí. Ah, arte. Por lo que el tipo de datos está mal. Entonces es decir que debería estar regresando. Objeto es o no un resultado de código de estado. Por lo que si solo se tratara de estatus anotado, se iniciarían 500 resultado anotado. Pero debido a que tengo la información adicional con ella, es un resultado objeto, ¿no? Entonces quiero decir, no tienes que,ya sabes, ya sabes, preocuparte por los diferentes tipos de datos con más frecuencia que no. Si no pasa por encima de lo que sea, necesitas regresar, verás qué tipo off beat es el tipo que es, y solo asegúrate de tener el tipo de datos apropiado que se está representando. Entonces cuando se llama a esta función, se va del dedo del pie. Amor. Sean cuales sean los mensajes que se pasen, sólo voy a devolver 500. Entonces eso significa que solo puedo hacer esta llamada telefónica Sean para que solo pueda llamar a error interno en cualquier momento que llegue a la excepción. Pero entonces, recuerda, necesito el mensaje. Por lo que tenemos que hacer lo mismo donde consigo la excepción en. Entonces solo voy a pasar unos valores de cadena así que usando la interpolación y quiero construir una cadena similar a lo que se puso en el aire de registro, algunos en realidad solo van a quitarse todo esto. Yo sólo lo voy a pasar como el mensaje, ¿ verdad? Entonces cuando lleguemos al camino de la captura, espero que no lo hagamos. Pero si alguna vez lo hacemos, entonces se va a llamar a flecha interna, pasando el mensaje de excepción en la excepción interna en. Entonces, cuando se le llame, se va a hacer el registro apropiado y luego devolver el inicio de anotado, que luego sería devuelto a la función justo en ese entonces así que en realidad sólo puedo ver volver aquí. Por lo que estaré regresando Flecha Interna a la derecha. Yo puedo quitar el tiro. Entonces una vez que llegue ahí, sólo va a devolver el valor que esta función llamó a su abogado. Entonces eso significa que cada vez que golpee la sección de la iglesia fuera, uh, llame. Yo sólo puedo hacer esto. Un liner donde acaba de llamar interno segundo fue reemplazado que en el anterior. Porque quería ser consistente. Yo quiero que todo fluya de una manera. Correcto. Por lo que el comportamiento para las excepciones que se van a atrapar debe ser la costura. Atrapas la excepción en solo haces un registro a regreso para iniciar una escuela a los 500. Um, claro, si quieres mensajes diferentes, No. Entonces te refieres a necesidad de mirar, ya sabes, encontrarlo un poco. Pero en última instancia por 500 no quiero ser más elaborado de lo que algo salió mal. De verdad. Y verdaderamente correcto. Otra cosa que quiero hacer dentro de mi get author sería comprobar si en realidad recuperé algo cuando hice esta llamada. Por lo que no quiero sólo devolver un 200. Está bien. Cuando no había nada de teléfono. ¿ Verdad? Entonces quiero decir, puedo devolver una lista vacía y decir 200. Está bien, pero no había nada llamado. Eso es buen paseo. Bueno, ya sabes, Green off buscado en esta situación. No quiero que busques yo d con el, um lo siento. Autor con i d dos y luego no obtener el resultado sería conseguir un 200. De acuerdo, entonces lo que voy a hacer aquí es que voy a ver si Author es no. Entonces quiero regresar. Uh, no telefoneado. Está bien, Así que no llame a este cuatro o cuatro, ¿verdad? Deberían estar familiarizados con los cuatro. Cuando haces clic en algo en Internet encendido, entonces lo lleva para una página de cuatro y dices: Oye, Oye, probablemente terminaste o estás buscando algo que no existe. Eso es un 404 Así que eso es lo que quiero. Si comienzas por un autor con i d 100 cuando no hay autor con i d 100 o al menos no fue telefonada en la base de datos, Entonces quiero iniciar sesión y ver. No fue teléfono. Entonces este regreso detendría la ejecución ¿verdad? aquí así que podría simplemente agregar registro Login fort asi más tiempo que log tal vez adviertan Mr C Warne eso se puede determinar el grado fuera de la, um la intensidad son el peligro fuera de cada operación lager, ¿ verdad? Alguien para advertir que autor con i d Andi, Sólo utilizar la interpolación no se cayó. Muy bien, así que buscaron. No fue encontrado. Tan poco sólo va a Deeble más que probar este punto final. Está bien, así que swagger nos está mostrando que tenemos un nuevo endpoints que está off type get cuando miro, veo que tiene un parámetro requerido llamado I d. justo en dit está devolviendo 200 éxito. Entonces regresaremos y agregaremos más anotaciones para eso. Bueno, vamos a hacer traquetear en Jinete. Está bien, entonces en Postman, vamos a probar esto nuevo en punto para que siempre pueda consultar la documentación para ver cómo ve su pregunta. Parecía slash ap slash autores slash en el valor i d. ¿ Verdad? Entonces lo que voy a hacer es decir, slash ap slash author slash Una vez no tengo autores en mi base de datos, por lo que uno debe ceder cuatro o cuatro en. En realidad, voy a depurarlo contigo. Entonces lo que voy a hacer es volver al controlador. Vamos a ponerle un punto de descanso. Entonces pasaremos por ahí solo para ver exactamente qué pasa. Se quita del camino. Entonces cuando voy a cartero sobre chico golpeado, envíalo. Es mi punto de descanso. Entonces ahí vamos. Por lo que no se llamó a nadie en el punto correcto, y ese siempre es un momento feliz. Si reviso, yo d. Vemos que el valor uno se está pasando en lo que usó F 11 para pasar. Entonces va a probar la operación. En primer lugar, inicia sesión , luego sí, va a entrar en todo apagado eso encendido. Entonces se va a tratar de encontrar, dijo autor. Entonces en realidad me voy a saltar esta vez porque va a pasar por alguna otra causa. Entonces solo voy a usar este pequeño botón de juego para saltar a la siguiente línea en. Entonces ya ves, ese autor es efectivamente no. Por lo que no consiguió un autor de la base de datos con I D uno encendido, así que bajará a nuestra, um sección donde le debería encantar con la advertencia de que no fue telefonada. Sí, y va a hacer eso en. Entonces volverá, no telefoneado, luego presionando si he seguido la ejecución. Entonces cuando miro hacia atrás en post man, verás el estatus de cuatro no telefoneados siendo devueltos. Está bien, para que así podamos controlar las expectativas sobre las interacciones con su A p. lanzé estado, anoté actualizaciones. Entonces simplemente quieto. Bueno, no le dije en un verano a éste, así que sólo tuvimos un resumen en ir a decir Ponte. Autor por I d onda parámetro parámetro nombre es idea puede dejar eso solo y regresa. Se requiere autor. Está bien, así que no más de una p a documentación tendrá un poco más de información sobre eso. No. Otra cosa que voy a hacer es en estos produce anotaciones de tipo de respuesta al diferente, um, endpoint. Entonces este endpoint es capaz de volver de ok? O un 500 alguien que diga debajo para conseguir que lo haga bien, pero también hace el status 500. Error de servidor interno 500. Justo en eso. Yo voy a hacer lo mismo por este, que también hace el bien. También hace la flecha interna, pero también es capaz de hacer un status 404 Así que es eso lo hace para los cuatro no telefonados. De acuerdo, y luego echaremos un vistazo más a la documentación solo para ver qué diferencias esas carnes. Muy bien, entonces nuestra documentación incluye nuestro resumen. Cuando no lo hago en el get offers, veo que no es consciente de que la flecha 200 éxito o 500 servidor allí bastante posible. Y si miro en el uno con el i d. veo que podría conseguir un éxito fuera para cuatro y un 44 tiene su propia carga útil, lo cual habría visto en la respuesta donde nos está diciendo el tipo, el título, el estado, las verdaderas sociedades, supongo que eso se está devolviendo cuando llamamos a eso no función telefónica en DSO. Nuestra documentación está haciendo representación del hecho de que eso es lo que un cuatro o cuatro pueden tener en él, ¿ verdad? Entonces supongo que podemos llenar esos detalles con nuestro costo, um, um, contenido si lo necesitamos de la misma manera que podríamos enviar un mensaje personalizado con nuestro cinco país, así que eso es más país, o menos por estar separados, Get y puntos. A continuación será configurar o crear en punto para que la próxima vez que probemos para obtener, entonces deberíamos poder validar que los datos realmente se están recuperando de la base de datos. 19. Autores: configuración create create Endpoint: Bienvenido de nuevo en esto. Escucha, vamos a estar configurando el endpoint de creación para nuestros autores, controlador del FBI. Por lo que iniciamos este ejercicio escribiendo sobre una nueva tarea asíncrona fuera del tipo I action result on. Entonces vamos a llamar a éste. Crear en él va a estar esperando un parámetro Voy a ver esto usa anotación que es de cuerpo, ¿no? Entonces eso significa que cuando la persona o el cliente está haciendo una llamada a este fin puntos, se espera que pasen en nuestro cuerpo con algún contenido. Ahora, aquí es donde definitivamente entrarán en juego los objetos de transferencia de datos porque en este momento sólo tenemos detalle de autor, que es aceptar idee. Nombre, apellido bio. Andi, hago una lista para libros. Esencialmente, cuando estás creando un autor, uno que no necesitas proporcionar un i d. on D no esperaría que proporcionaran la lista fuera de los libros. ¿ Verdad? Entonces lo que voy a hacer es que voy a crear una nueva clase, y sólo voy a usar el mismo autor, DT o clase, Pero el archivo de clase de detalle de autor, más bien. Pero voy a crear una nueva clase ahí dentro en algún lugar para ver público. Plus en. Entonces voy a llamar a este autor. Perdón, autor. Crear e T o.Todo bien en, entonces. Dentro de este autor crear GTO. Voy a tener definiciones para esos nombre, apellido en bio. Entonces eso es todo lo que quiero que alguien pueda proporcionarme para la creación a menudo. Autor. Muy bien, Así que esperaban datos una vez más para crear el también se definiría y también crear DT Owen. Y a partir de aquí, puedo poner, um, cierto que sé esquivar Segundo, hacer su requerido. Um, déjame solo poner que cuatro balas nombre y apellido la bio me voy opcional. Por lo que después incluye algunas bibliotecas para obtener esas anotaciones. También puedo poner en diferentes anotaciones, como para el tipo de datos y la longitud máxima. Y así no lo haré, ya sabes, hacer cumplir todos esos. Pero solo estoy asegurándome de que les estoy haciendo saber que al menos estos dos se requieren en entonces la bio ¿es así? Muy bien, Así que al definir a este autor crear GTO volviendo a mi control, que dejé muy incompleta, lo sabré. Diga que el parámetro que estoy esperando del cuerpo debería verse algo así como el autor crear DT. Además, si no ponen nada más, necesitan asegurarse de que tengan al menos nombre, apellido y bio en eso. Yo estoy haciendo cumplir aún más ese nombre y apellidos son requeridos. Entonces volvimos al controlador. Muy bien, entonces empezamos a definir qué exactamente o crear Debe hacer. No, voy a hacer una serie de cheques fuera de curso. Primer día sólo voy a hacer mi intento. Atrapa en el interior de la captura. Yo sólo regresaré. Flecha interna del servidor sería a su vez el error encendido. Um, una función llamada Lo siento, Andi puso mis excepciones. Sólo estoy haciendo eso porque eso es lo más fácil de hacer en un on para asegurarme de que no lo olvide. Correcto. Entonces tengo eso. Sé lo que voy a hacer. Ya vemos si el objeto que es Oh, bueno, lo siento puse en la clase y al hacer poner ahí el nombre. Perdón. Entonces desde cuerpo, estoy esperando en autor, objeto fuera de tipo autor crea detalle alguien para decir si el autor es no. Entonces eso significa que trataron de presentar una solicitud Pero no había datos de autor ni datos esperados siempre que sólo voy a regresar. Ah, pero solicito. Eso fue por una petición de tu parte. De acuerdo, en ese entonces, está este objeto o esta propiedad a la que puedo llamar llamado Model State, que básicamente está rastreando el estado de validación de los datos. Correcto. Entonces recuerda que acabamos de poner en alguna validación para decir que se requieren ciertas cosas, y así sucesivamente El estado del modelo básicamente está rastreando cualquier cosa que esté sucediendo a través de los valores de datos . Por lo que más o menos es buena práctica dedo del pie, haz todos los cheques antes de pasar a transformarlo más tarde. Porque el hecho es que quieres asegurarte de que para cuando estés llamando al dedo de la base de datos ponga algo en la base de datos que todo esté en orden. Entonces estoy revisando si lo es, Sepan que les estoy diciendo que eso es solo de solicitud. No voy a ir más allá. Um, si fuera un caso en el que solo querías autores con necesitas nombres son siempre registros. Debe tener algo único en lo que compruebe la singularidad en. Después vuelves apropiándote. Entonces ahora mismo esto es sólo lo que me estoy haciendo. Entonces ni siquiera puedo meterme. Ah, amor. Entonces sólo así con estas declaraciones, si tienes una tierra, no necesitas las tesis de los padres. Pero una vez que tienes más de uno, necesitas paréntesis son solo copiar el registro. Uh, bueno, déjame sólo decir en el marcador. Amor desgastado más largo. No, no nació el. Yo sólo voy a ver eso. Yo sólo voy a ver que se presentó la solicitud vacía, Muy bien. Y luego fuera de curso, puedo poner otro registrador. Empiezo a ver fuera de la presentación. Intento de presentación de autor intento. Entonces lo sabemos. Y entonces éste habría sido un info. Muy bien, entonces estamos informando a todos que alguien intentó crear un autor. Si la carga de bahía era no, entonces solo estamos advirtiendo para ver a Intercoastal presentado, y luego estamos regresando que había una mala solicitud justo en. Probablemente pueda poner en el modelo. Se alojó. Bueno, déjame locos complicar esto. Cualquier más que autoridad solía ser. Entonces eso es sólo algo de información. Por lo que podemos seguir adelante con esto entonces podemos decir chequear los estados modelo. Recuerda que el modelo aquí estado modelo es más o menos, um, um, dedo del pie cansado Lo que las validaciones hubieran impuesto a nuestro DT. Ah, bien. Por lo que nuestro DT siempre diciendo que estos dos se requiere alguien que diga, Si no es así. A mí me gusta hacer los cheques malos primero, ¿no? Por lo que siempre comprueba para ver si todo no está en orden. Y si no está en orden de lo que no procedo. Si no los estados modelo, eso es válido. Entonces eso significa que si hay algo ah, botes, los datos que se están presentando que no cumple con los criterios de validación y que nos asentamos entonces también voy a regresar por solicitud. ¿ Verdad? Pero entonces cambiaría cuanto más tiempo lo pierda un poco para ver. Um, ya lo sabes. Waas incompleta. Nuestros datos de autor estaban incompletos. Está bien. Otra forma genial de hacer esto sería en lugar de ver autor cada vez que acabas de decir, deja que un nombre de controlador y su escolta que te permita simplemente obtener el control y el relativo a donde se está escribiendo la corte. Entonces en cambio, estaba tratando de decir, autor, cada vez, autor, cada vez que sólo se podía ver el nombre del controlador, que es ofertas y luego ver los mensajes, al menos en el registro, es más fácil de decir. Eran o qué controlador ese mensaje más genérico se asocia con nuestro cualquier agujero. Hay tantas maneras de hacer esto que si yo intentara poner todas esas cosas fuera de curso, nunca terminaríamos. Entonces, ya sabes, podemos simplemente seguir adelante y aprender y crecer a medida que avanzamos. No, Después de que me haya sacado mi trasero cheques fuera del camino. Si se va más allá de estos dos cheques que algo debe de estar bien, ¿ verdad? Entonces voy a decir var autor o qué tipo de reutilización Autor var. ver, Record es igual a on entonces ¿sabes lo que voy a No quiero decir Author D T o.Así que sabes que este es el GTO viniendo del parámetro que voy a salvar a nuestro autor. Está bien, así que solo estoy tratando de arrodillar mi variable para que cualquiera pueda mirar a la cancha y, ya sabes , asociar fácilmente , um, variables con donde pertenecen Hasta ahora, Autor va a ser igual dedo del pie mi ma por haber fregado. Um Y luego fui a ver quiero TEM arriba del dedo del pie el autor de la clase de datos. Esta vez en adelante, lo quiero arriba. Cualesquiera que sean los datos que estén llegando a través del autor E T O. Sobre eso, soy gana después de incluir algunas cosas en las que puedo involucrar a la clase de datos del autor. Entonces lo que esto está haciendo es la dirección opuesta, o así estoy obteniendo el detalle del cliente con los datos encendidos. Entonces voy a decir OK, mi superior. Yo quiero que tomes los datos que aquí se incluyeron, lo que implicaría el nombre, el apellido y la biografía. Y luego quiero que lo trapeen a la clase de datos que tiene todo lo demás de todos modos , ¿ verdad? Entonces si falta algo, se pondrá inserto. Se insertará más adelante. O al menos podemos controlar esa. ¿ Verdad? Por lo que como mínimo, una vez que esto está fregado, al menos el nombre y apellido a menudo autor debe ser fregado. Si nuestra biografía está presente que se marcará si no está presente de lo que está bien, ya sabes, no es consecuencia que no lo hiciéramos requerir No haber hecho el mapeo, me voy dedo del pie tratar de guardar cambios. Entonces voy a decir que var es el éxito está igual del dedo del pie de distancia. Es el llamado a mi autor. Eople autor de Bus story dot Crea derecho sobre los éxitos de virus resultantes que recuerdan que esto va a devolver un booleano. ¿ Qué? ¿ Es exitoso o no? Lo que parecía con éxito o no en entonces el crear está esperando una entidad fuera de tipo autor, que acabo de obtener habiendo hecho el mapeo. Entonces voy a pasar eso dentro. Entonces después de hacer eso, vamos a ver si no su éxito, decir si esa no fue una operación exitosa de lo que probablemente querré iniciar sesión en DSI. Yo sólo amo rápidamente y digo creación de autor, Field on. Entonces llamaría a mi funcionaria interna función correcta, Así que me limitaría a devolver esto. Entonces quiero decir, hay tantas maneras de hacer esto sigue leyendo, entonces siempre y cuando todo lo demás sea viejo t. Entonces eso significa si esto fue exitoso, Lo siento. Por lo que aire interno del mensaje sería lo siento. Estoy mezclando, mezclando, saliendo de mí mismo. Lo que voy a hacer aquí en realidad se pasa en este mensaje como el servidor interno Arrow rights. De acuerdo, entonces pasaré un campo de creación de autor como mensaje. Entonces eso es lo que nos registraremos. Mi cuerpo encendido. Entonces el usuario simplemente obtendrá que el algo salió mal. Pieza contacto administrador con un estado enfriado 500. Entonces si esto se intentó y no fue exitoso, entonces obtendrán 500. Entonces, ya sabes, estoy diferenciando entre malas peticiones y 500 porque una vez más, pero la solicitud significa que los clientes no hicieron algo bien en los 500 significa que nuestro lado falla. Entonces hicieron todo bien, y él llegó a este punto, y falló. Por lo que ya sea campo aquí o maestros poco excepcionales y campo. O necesitamos decirles que algo campo, que es una flecha 500. No obstante, al final, fuera todo esto siempre y cuando ninguna fuera estas partes de fuego se golpeen o estas. Si las declaraciones se golpean, entonces podemos asumir con seguridad que el retorno que lo creamos con éxito para que pueda regresar. Uh, empieza a enfriarse. Crea Ted, que creo es uno de dos hoyos. Sí. Entonces 200 está bien. Será uno es un bien, Andi, algo correcto? Tan creado Estaría diciendo, Yemen creaste algo en todo está bien y así pasará aquí Y si terminamos, vemos que está esperando una cuerda. Estás en algún valor de objeto. Entonces lo que puedo devolver aquí sería, ah, ya sabes, ya sabes, crear Ted y luego verías crear encendido, luego pasar un nuevo objeto con los datos que regresan del autor, ¿ verdad? Entonces una vez que hubiéramos creado también con éxito, esta entidad en realidad se actualizará automáticamente con el nuevo yo d. Por ejemplo, en lo que sea que hiciera probablemente tendría sentada después de la presentación, Así que eso sólo va para devolver los detalles de lo que se creó. Y entonces puedo incluir yo más largo aquí, uh, Oliver punto en su totalidad para ver. También se creó con éxito. Se crean autor nuestro Vamos a dejar esa oferta creando. Está bien, así que nos quedemos esto para dar una vuelta. Hicimos un poco fuera del trabajo y luego fuera de curso. Quieres probar cada escenario para asegurarme de que estén funcionando como esperamos antes de seguir adelante , aunque sí descuidé poner una notación. Entonces déjenme decir que este es un post http. ¿ Todo bien? Por lo que una vez que hagamos una respuesta post o post solicitud, sabrán que debe golpear esta función por esta acción. Más bien, también voy a hacerle saber los diferentes tipos de respuesta que producimos. Entonces no producimos. De acuerdo, Pero sí producimos herramienta uno creado derecho, Así que éste te hará saber que fue creado. No va a hacer un 404 pero fue un mal peticiones, Así que stock lo hace por 100 es malas peticiones. Muy bien, entonces. Por supuesto que sí. También hacerles saber cuando a su vez nos ocurrieron flecha. Está bien, en esto así, pero no dejar Empezó a poner mi resumen. Entonces este es el ser más grande para la mayoría de los programadores recordando poner el verano por lo que esto se crea en autor en entonces El nombre Param es autor DT. Ah, así que me quedaré aquí. Bueno, en realidad puedo dejar eso en paz, y no necesito precisar nada que se esté devolviendo. Entonces vamos a desacreditar más que tomarlo a dar una vuelta. ¿ Todo bien? Por lo que la documentación está en marcha, vemos o publicamos hay un ejemplo de lo que se espera. ¿ Verdad? Entonces recuerda que usamos el DT Oh, no usamos el objeto autor completo. Y así el detalle que utilizamos era nombre, apellido. Y por esos son los únicos datos requeridos, um, bits fuera de los que deberíamos pasar. Y nos está diciendo que debe estar en el órgano de solicitud. Muy bien, así que probemos eso con cartero. Entonces fui y creé una tina nueva, y luego puse en los puntos finales, que es escuela anfitriona local a bordo de autores slash ap slash. Pero tenemos, ah, poco permitirnos hacer aquí. Entonces uno que no estamos haciendo, lo consigo, pero estamos haciendo un post. Por lo que tenemos que cambiar esta convocatoria para publicar. Está bien, en luego en el cuerpo. Tenemos que especificar algunos datos, así que voy a ir a Bueno, tienes para mí una de tus datos codificados de elin. Variedad de binario de graph quells que el Así que voy a hacer rock on. Después fui a cambiar esto de texto a Jason. Está bien, así que estoy pasando en una almohada que se ve así, y esto es en un tipo de datos son ah, tipo de cosa anterior llamado Jason. Correcto. Por lo que Jason es como un estándar a la hora de enviar y recuperar datos, y es al menos renta No on. Es realmente genial. Se incautó. ¿ Entiendes? Por lo que sólo voy a copiar esta muestra de la documentación en adelante en Cartero Pégala en. Entonces para el valor de nombre que voy a poner déjame poner mi nombre para el valor del apellido. Pondré mi nombre también en eso. Voy a pasar una bio en blanco. No expectativa. Aquí es que una vez que golpee enviar, se va dedo del pie llamar a ese punto final. Entonces lo que voy a hacer es volver a terminar, um frío y voy a poner un punto de ruptura en los crea. ¿ Verdad? Entonces una vez que haga eso, voy a conocer Hit, enviar, y es nuestro punto de ruptura. Entonces Bueno, feliz día Justo en ese entonces. Si paso el cursor sobre el GTO, entonces veré ese bios en blanco. Pero el nombre y el apellido están efectivamente presentes. Está bien, así que estoy seguro de que si solo continúo, entonces sería exitoso. Por lo que las imágenes presionan f cinco y continúan por la ejecución. Andi, revisa cartero para ver cuál es la respuesta. Waas y yo nos equivocamos. En realidad estoy consiguiendo un 500 a su vez en la tierra. Entonces algo salió mal en el camino. Ya sabes, en lugar de pasar y pisar, puedo distraer mi candado aquí en mi bitácora estoy viendo lo que se está diciendo. Por lo que dice que falta la flecha. configuración de la fregona no son compatibles. Fregado. Sí, entiendo completamente qué es eso. Un barco. Entonces déjame sólo salir b barco amarrado y arreglar eso. Entonces lo que pasó es que introdujimos un nuevo DT Oh, en forma de autor crear GTO on. Estoy tratando de fregarla. Pero adivina lo que no hice. No le dije otoño superior para conocer un barco que mapeo así de vuelta en las fregonas. Necesito especificar que hay estoy fregando que existe entre autor y autor. Crear de trato. Muy bien, así ves Ah, flecha muy simple, porque fuera de una configuración faltante. Pero siempre es bueno. Ese es uno de los beneficios de los troncos porque, ya sabes, habría pasado tiempo Trento, paso por un filipino cada tierra para ver dónde salió mal y trató de ver la excepción. Pero cuanto más tiempo sólo te diga, es por eso que falló. Por lo que el usuario solo está viendo que algo falló. Por favor contacta con el administrador que te llaman eres el amor un boleto con tu empresa y luego puedes entrar al registro e investigar exactamente qué pasó. Está bien, así que intentemos eso otra vez. Volvamos a la lancha amarrada en prueba o a una P I otra vez. Entonces voy a tratar de presentar los mismos datos con Cartero. Por eso es que el cartero es tan útil porque guarda tus sesiones. Guarda tus pruebas y siempre puedes simplemente volver a escolarizar y hacer click. Envía. Entonces veamos si pasa. Entonces es mi punto de descanso, y sólo voy a presionar un fuego para que continúe. Entonces déjame volver a visitar cartero en. Ahí vamos. Entonces voy a volver. Empiezo hacia uno para ver que fue creado con éxito en También está devolviendo todos los detalles del autor recién creado. Entonces yo d Este es el i d consiguió, um, el primero en el apellido. Y bueno, no había sesgo. Déjame probar a alguien más. Entonces en una llave Ah Evans Andi, Ella es inteligente. Esa es nuestra biografía on. Entonces déjame hacer click. Envía. Yo solo estoy quitando el punto de ruptura para que, ya sabes, no tengamos que engancharles cada vez. Y luego hay una K. Evans con su bio. Entonces lo que pasa con el no requerido sería que si no presentara uno de estos campos requeridos. Entonces déjame hacerme cargo primero y primero se adquirieron Emma Lawson. Estoy tomando el nombre de pila en ir a fijar el punto de ruptura aquí. Sólo dedo del pie asegúrate. Por lo que esta vez quiero un punto de descanso sobre eso voy a dar click enviar. Bueno, ni siquiera llegó al punto de ruptura. Me acaba de decir que es una 400 mala petición sobre Barroso. Se incluirían errores de estado del modelo para decir que se requiere el campo de nombre. Entonces ese es el poder de desconexión de estas respuestas. Entonces si de verdad ni siquiera golpeaste el punto de ruptura, solo sé están tal vez mi cronometrado estableciendo un punto de descanso y sometiéndote, pero probablemente le pegue a este. El estado modelo no es válido. Datos de autor estaba incompleta el. Después devolvió una búsqueda de mantequilla diciéndote el estado modelo encendido con la prueba más donde lo voy a llamar, pero sin datos en absoluto. Entonces cuando golpee, enviar sólo me va a dar Oh bueno, está dando un tipo de medios sin soporte. Entonces esa es una respuesta por defecto. No, porque no hay método post ah en mi a p I. Eso no toma nada en el cuerpo. Entonces realmente y verdaderamente no debería tener. Bueno, si tu petición no hace mucho nada dentro del FBI, entonces conseguirás un para sobre cinco para ver. Ya sabes, es un invitado atrapado. Esa es sólo esa respuesta por defecto. Ondas a ciudad Erekat honestamente te digo, ho, yo simularía este por comprobar si es pequeño, pero así es como es, ¿ verdad? Por lo que los cinco extranjeros incluso interceptaron antes de que intente llamar a esto crear. Entonces eso es todo por configurar nuestro create in point on, tenemos logging. Contamos con respuestas adecuadas y validación. Um, errores en el camino configuramos un nuevo detalle sobre cuando regresemos será configurar la actualización y el punto 20. Autores: la actualización del punto del punto final: Oigan, chicos, bienvenidos de nuevo en esta lección. Vamos a estar poniendo en marcha el punto final ocho para nuestros autores, un controlador P I. Entonces voy a especie off agilizar esta piedra y sólo copiar algo de lo que ya existe. Onda acaba de pegar. Y luego estaremos haciendo ediciones a medida que avancemos. Está bien, ¿entonces? Entonces si mi sangría se salió del trabajo, sólo arréglalo, acuerdo? Entonces acabo de copiar en paz que el crear, Pero entonces voy a hacer algunos cambios. Entonces esto va a ser opiáceos sobre autor on, entonces la petición para esto es ser http, poner Todo bien, poner Todo bien, Así que cuando se habla de pone, eso es todo lo que se sube un poco. Supongo que significa que están metiendo. Lo hiciste. No sé por qué lo llaman pone, pero vamos a trabajar con ello en Dwell. Podemos modificar el estado. Partituras después solos están terminadas, pero éste va a estar subiendo. Y por no, seguro que probablemente te das cuenta de que casi no importa del todo lo que llames la acción porque no estamos llamando a las acciones por su nombre en Cartero. Es realmente el método en los parámetros que pasamos que determinan qué función debe capturarse. Entonces si dos funciones se parecen demasiado, como puede que tengas que crear formaciones en el mismo un control de par y creo que los mismos parámetros. ¿ Qué? Tienen nombres diferentes. Estos son estudio puede no darte un error, porque en táctica, es correcto. Pero en la forma en que funcionan los ojos AP o al menos descansan, Felipe tiene trabajo. Probablemente causaría un problema porque las cargas útiles son los datos que se envían se parecen demasiado . Entonces puedo decir a qué pobre estrella a cuál obtener función debe llamar. Muy bien, así que los nombres aquí realmente importan menos que el hecho de que estés poniendo la anotación del carrito Andi, o línea en los parámetros del auto. Construciones inesperadas. Por lo que para nuestra actualización en puntos, me voy a poner el dedo en parámetros idee. Entonces las expectativas que van a llamar, um, um, ponen el endpoint Lo sentimos, el a p i B s euro slash um, el I D. On d Estamos esperando nuestro cuerpo fuera de datos. Por lo que muchas veces ves que la gente usa el detalle de crear y a veces lo llama y edita o lo llaman absurdo, que significa actualización en insertar uno, porque generalmente el creador y se ve muy similar. No les permites editar las mismas cosas que no les permites crear, ¿ verdad? Pero entonces el punto es que si necesitábamos diferenciar, como , por ejemplo , uno también, si quieres que esa persona sea capaz de editar la bio pero no el nombre y apellido, entonces podríamos para especificar un nuevo detalle con todas las propiedades que esperaban Data cuatro y estaría aceptando. Estos son para en este caso, solo voy a usar el continue in the create porque sirve un doble propósito. Pero entonces el nombramiento puede ser peligroso porque, sabes que quieres ser explícito. Pero en esta situación, lo dejo en paz. Por lo que también crea detalle y estoy viendo estoy esperando algo fuera de detalle del autor. No, sí viste en la documentación que es un detalle de autor. No necesariamente quiero decir autor d t o a quien esté leyendo documentaciones. Si cambié eso aquí en adelante, solo digo el nombre de Param es autor, pesar de que signifique perder mucho y me va a advertir que Hey, ya sabes, no auto mucho, pero eso es lo que quiero que diga en el documentación. ¿ Verdad? Por lo que pasando un autor en quiero nombre, apellido y en la bio. Muy bien, entonces. Una vez más, si nos resulta molesto esta advertencia, sólo podemos mirar al tribunal de advertencia, que es 15 73. Sí, 15. 73 el. Entonces podemos seguir adelante y, um, um, tomarlo todo nuestro suprimirlo en nuestras propiedades. No, dentro de nuestro cuerpo de acción, tenemos o de costumbre, tratar de atrapar. Y en nuestra captura, sólo vamos a volver sobre la función de error interno. Excepción de llamada con el objeto e. Entonces empecemos con nuestros polluelos algunos con el primer cheque y veamos si d es, eso es menos de uno, lo que significa que ese valor no tiene sentido. O si autor bto es equivalente a saber derecho? Entonces quiero devolver la solicitud de Bud. Está bien. Encendido, entonces. Tan mala petición. Si miras a los señores superiores, ves que te permitirán pasar en el estado modelo. Está bien, así que esa es una madre diciendo que hablamos un barco también podrá pasar por error para que podamos pasar en una costumbre, um, objeto. O podemos buscar un objeto apropiado que nos dé a todos fuera de los puntos de flecha que queremos . Está bien, así que estoy devolviendo malas peticiones. Si la carga útil es no, o esto devaluo no tiene sentido. También podemos revisar de nuevo para ver si se valora el estado modelo acoplado. Entonces estamos comprobando si no es válido. Entonces si no más, el estado es válido. Entonces voy a devolver también malas peticiones. Pero esta vez paso en el estado modelo. ¿ Verdad? Voy a dejar el tala para el final. Simplemente estoy caminando por todas las funciones principales. Muy bien, Entonces, haciendo después de hacer estos dos cheques, probablemente pueda asumir con seguridad que todo está bien. Alguien para proceder y salvar nuestro es. El éxito es igual para esperar los resultados fuera. Mi autor posiciona a Torrey como él llama a las actualizaciones, pero luego hice un faltante un gran paso aquí donde necesito un objeto fuera de tipo autor. Entonces estamos recibiendo el detalle que necesitamos para fregar. No me perdí ese paso, Así que está bien hasta ahora. Autores iguales a en el marcador Mi trapeador atracado superior ¿verdad? Y estoy elevando a autor en la fuente es lo que Avery nadando a través de autoría e T o.Está bien, Así que reviso lo que está mal si algo se trata de regresar. No queremos empezar a golpear las operaciones con datos malos. Por lo que comprobamos cuerpo. Es nuestro regreso. Detener la ejecución rápidamente si algo anda mal pero Y si conseguimos este incendio, queremos dedo del pie, hacemos el mapeo, intentamos y enviamos base de datos y luego decimos, si no, es tan exceso entonces sabemos que teníamos en error interno lo mejor que podamos adivinar. Eso es todo lo que sólo un error interno haría que no funcionara. Entonces procedemos a decir regreso. Entonces si recibe este incendio, entonces queremos devolver ningún contenido, ¿ verdad? Entonces ningún contenido es Ah, suena por, pero en realidad es una buena respuesta Marcó bien en el sentido de que ningún contenido significa que no tuviste ningún error Pero no tengo nada que demostrarlo. Entonces 200 está bien en que regreses. A resultado si hay datos pero en ningún contenido es decir? Bueno, estaba bien, pero en base a la petición, eso tendrá cualquier cosa para demostrarlo. Pero no solicité nada de mí. ¿ Verdad? Entonces eso es lo que ningún contenido necesita. Entonces, no, solo necesito afinar un poco esto. Por lo que el error interno aquí sería optimista. Operación hijo campo. Está bien, vamos a empezar a poner algo de tala. Entonces entienda, Tow bar el maderero en línea completa aquí en eso, voy a ver al autor Hope Deeds tentado, um, y luego poner en i d valor siendo los permisos son d. Y entonces sólo voy a poner en mi interpretación aquí. Muy bien, así que hice un poco de tala. Puedes pausar el video y de inmediato el registro, si quieres, ya sabes, seguir el registro que tengo. Si no lo haces, entonces está bien. También voy a regenerar este resumen porque el verano sólo está haciendo representación para el parámetro autor. Pero también puse en yo decido esta región ery que. Y así ves al Autor Onda el detalle. Entonces lo que pasa saber es que acabo de notar que definitivamente vamos a conseguir una era en la que intentemos esto. Eso es porque sigo usando el detalle de crear. Entonces lo que pasa con el detalle de crear es que me deja simplemente volver atrás. No incluimos un I D. Derecho. Entonces para crear, no necesitamos un I D. Pero en orden en la actualización de grúa, sí necesitamos un yo d. porque y dos diferentes trabajan o necesitan el i d en la entidad. Derecho a saber a qué entidad debe apuntar sobre cambiar sus propiedades fuera. Entonces, um, sí dije que podíamos seguir con el detalle de crear, pero claramente me equivoqué. Así que vamos a crear la capacidad de sobre el detalle obviado probablemente va a parecerse más a detalles del autor en el detalle del autor de Skopje. Bueno, no escuches basado en ellos, que se llama su autor off bit DT Oh, pero no necesito esa lista fuera de los libros. Correcto. Por lo que las actualizaciones detallan y tienen el i d off de la entidad siendo cambiada. El nombre y el apellido en el bios. Todo ahí en entonces necesito pero mis anotaciones para indicar lo que es absolutamente necesario para las actualizaciones De también, ¿ verdad? No, volvimos a mi contraloría uno. Voy a cambiar todo el parámetro de oferta. Creado el autor actualización detalle Derecho el. También voy a agregar otro cheque aquí donde voy a ver mientras nuestro detective el valor i d es menor a 10 r Si el otro objeto detalle es no, Pero voy a poner en una declaración más para decir, o si el yo d no es igual al autor DT adeuda devaluo. Por lo que estos dos valores no deben faltar mucho. No puedo estar pasando el valor cinco aquí, pero pasando datos para también con i d seis. Eso no tiene sentido. ¿ Verdad? Entonces cualquier idea aquí debería mucho la idea que se pasa en el cuerpo para el autor. Está bien, así que pongamos a prueba este, Así que sólo voy a seguir adelante. Voy a dedicar más. Vamos a probar con cartero. Muy bien, entonces estamos viendo aquí que tenemos el endpoint siendo representado, por lo que es que requiere de un perímetro en el que D. También esperamos el remolque de carga útil. Tener d nombre, apellido y bio como las propiedades. También vemos los diferentes tipos de devoluciones que se van a refinar porque no tienen tantos retornos. Nosotros. Definitivamente no tienes éxito. 200 o 201. Muy bien, Entonces, ¿qué nos permite validar primero antes de ir a mí? Esos cambios. Entonces voy a entrar a un cartero, tener un top nuevo. Voy a cambiarlo del get toh put. Muy bien, entonces voy a ver autor con idee one porque sé que tengo un autor con i d uno, pero luego necesito asegurarme de que tengo la carga útil. Entonces déjenme probar éste primero, para que les pueda asegurar, éste sólo me va a dar eso por 15 lo creo. En realidad conseguí un cuatro o cinco esta vez. Entonces viendo método, no una carga. Está bien, así que parecía que me puse algo así como, me dan solicitud, pero estoy llamando al puesto porque pongo espera que haya un parámetro así como cuerpo. Entonces cuatro o cinco. Esa es una autorespuesta diciendo que conoces tu petición sobre el verbo No mucho. Eso está bien. Entonces voy con el cuerpo, elijo crudo bajar a J Asan on, luego estoy con el post papa en la muestra, así que hay que poner idee con el valor uno en. Entonces quiero actualizar que, um, um, autor para ser Alia en el apellido sería Stewart on para la bio. Um, digamos que me voy a poner el dedo. Ella es impresionante escribiendo libros. Muy bien, eso es simple bilis. Entonces cuando haga clic, mande aquí y voy a poner nuestros puntos de ruptura dentro fuera del estudio visual para asegurarnos de que estamos golpeando el punto final correcto. Entonces cuando hago clic en enviar, estoy recibiendo un cuatro o cinco. Es ver método, no Telesis diciendo: Oh, Oh, ya veo cuál es el problema. Está bien. Ah, volvamos a estudio visual y hagamos una llamada rápida Cambie un poco el modo de depuración de salida en esta cancha. El cambio es realmente solo un asunto de tener el carrito en un programa de televisión, ¿ verdad? Entonces lo que necesito ver es que esto ponga mientras lo tengo definido que ya sabes, queremos el perímetro aquí de la forma en que vas a tener que pasar un departamento o sería primero. Entonces lo que quiero es del mismo tipo apagado. Um, llame donde acaban de decir slash ap slash autores slash el i d. derecho. Por lo que sin precisar esta parte a ella. Entonces eso es todo lo que hicimos por el get yo no lo hice por el puesto. Entonces sin hacerlo por los puertos lo haría después de pasar el i d. Parámetro usando un método diferente al en el um real, lo eres. A mí me gusta eso. Entonces lo que voy a hacer aquí es similar a lo que hicimos por lo no similar. Se replica lo que hicimos por el get Onda deja el puesto ni que su expectativa en I d parámetro en la URL. Está bien, mientras estoy aquí, déjame simplemente cambiar el estatus de los deportes. Entonces voy a decir que es status permitir cuatro sin contenidos. Whoa! 24 Anakin, dis prensa control espacio y se auto. Completa eso para mí. Muy bien, así que intentemos eso de nuevo en validar sobre órbitas. Muy bien, así que intentemos esto otra vez con cartero. Entonces tengo la misma petición aquí sobre los autores del FBI Uno en esto es la carga útil. Por lo que cuando hago clic en enviar, toca nuestros puntos de descanso. Ya sabes, sabemos que estamos enviando las solicitudes correctamente. Muy bien, Así que cuando vuelvo sobre la idea C I d. uno si me cierro sobre el autor DT sobre I Look, veo los datos entrando y las ideas mucho. Por lo que una vez más, tenemos algunas validaciones para decir si las ideas no van mucho bien, entonces regresaron. Pero solicito Por lo que a mí respecta, lo harán. Gran parte de esto no conseguiría Mets. Nada es no en i d es. Bueno, en efecto y de hecho, no menos de uno. El estado modelo es válido, creo, porque me siento por todos los datos requeridos. Para que eso no se golpeara entonces el mapeo. Entonces si algo probablemente obtendría una excepción porque nos perdimos alguna validación. Y sí creo que vamos a golpear la excepción porque no teníamos el mapeo. Está bien, así que sólo voy a presionar f cinco y luego vamos a buscar en cartero por esos 500 . Ahí vamos. Entonces no hicimos la fregona. Yo no necesitas revisar el registro para ver qué pasó, pero volveré al archivo de mapeo que está en mapas ings y mapas que CS en su tenemos autor creado GTO. Yo sólo voy a duplicar a ese autor de NC. Ah, es DDO, bien, esto está a punto de hacerlo una vez más y luego estamos libres de casa. Muy bien, entonces acabo de presentar la solicitud de nuevo y estamos consiguiendo la respuesta a un cuatro. No hay contenido para mostrar que nuestras algunas actualizaciones. Operación efectivamente fue exitosa, Así que sólo voy a volver a una de las solicitudes más antiguas donde dije conseguir todos los autores y voy a enviar de nuevo entonces esta vez porque tengo al menos dos autores en la base de datos voy a ver autor con yo d uno. Ese es el que acabo de actualizar. Ella también está escribiendo libros, digamos, Ver no sólo cosas libros Así que puedo controlar eso fuera de curso, porque si quieres al autor, quiero decir no quiero devolver todos los libros bien con sólo el autor. Por lo que modificando el detalle y asumiendo la lista de libros, puedo salir con eso. Muy bien, donde estamos viendo a los dos autores si vuelvo al get con el retiro i D, consiguió un cuatro o cuatro inicialmente. Por lo que solo voy a dar clic en enviar y recuperar autor con yo d uno y vemos el retorno. Baylor Stewart. También está escribiendo libros. Andi. Todavía no hay libros en el sistema y sabemos presentar el. No, sabemos cómo actualizar el dedo del pie. Entonces el final sería hotel delete, así que quédate ahí, eso es 21. Autores: configuración del DELETE Endpoint: Hey, chicos, Bienvenido de nuevo en este video estará configurando la funcionalidad de borrar para los autores. Contralor Onda. Bueno, ya se quitó la libertad, llenando algunas de las cosas antes para que puedas pausar el video y replicar lo que tengo ahí. Pero voy a estar continuando. Entonces debajo de nuestro delete, lo que queremos hacer es aceptar un permiso, er de tipo I d on. Después procederá a intentar eliminar este registro. Entonces, empecemos con nuestros malos cheques. En primer lugar, quieren asegurarse de que el yo devaluar tenga sentido a alguien para ver si el valor I d es menor de uno, luego regresar por solicitud. Está bien, entonces voy a seguir adelante y ver si están Bueno, lo que voy a saber es tratar de encontrar el disco con esto. Yo D a alguien para salvar. Nuestro autor es igual de dedo en eso. Yo sólo voy a usar a mi autor de positivo Torrey Docked. Encuentra por yo d en eso, voy a pasar en el I D de caballos, lo que sea. Alguien que lo permita. Está bien, entonces no. Después de átomo para recuperar ese autor, necesito revisar aquellos en los que realmente existe este autor? El modo de hacerlo es decir, si el autor es lo suficientemente equivalente. Entonces algo volvió, no será No. Entonces si es no, Entonces sólo voy a regresar, no teléfono. Entonces estás tratando de eliminar a alguien son algún registro y no fue telefoneado en la base de datos, Así que solo estoy devolviendo que eso no fue telefoneado. Está bien, entonces si no se detuvo ahí, sin embargo, seguiré adelante. Veré que quiero comprobar el éxito. Alguien a quien salvar. Nuestro es suc cess es igual a esperar. Autor, Se tira de dardos las pistas en. Entonces quiero darle el autor dedo del pie borrar entonces si no su éxito. Está bien, entonces por supuesto queremos asegurarnos de que todas las avenidas estén cubiertas, que es que hay tantas de declaraciones y pollitos. Entonces solo digo, si eso no fue exitoso, que fui a devolver mi error interno entonces si después de todo lo demás, solo voy a devolver ningún contenido porque no tengo nada que mostrarte en el punto que borraste algo. Entonces si nos pusimos en una respuesta sin contenido sabes que Alicia fue exitosa, Muy bien. Y entonces solo modificas esta tonta si no éxito que autor el campo de necesidades. Está bien, entonces lo que voy a hacer saber es solo agregar el inicio de sesión, luego podremos probar. ¿ Todo bien? Entonces hice algunos troncos, algunas líneas de tala. Puedes hacer una pausa y tomar el máximo si quieres replicar minoría y meter años. Pero ahora sólo vamos a probar y validar o operación de eliminación. Muy bien, entonces estamos arriba en modo de depuración de un cartero. Empecé un nuevo top. El verbo divertido es borrar. Correcto. Y ves que tipo de color llamé a los diferentes verbos. Creo que eso es muy útil en. Entonces voy a intentar eliminar al autor con el I d. Uno. Está bien. Entonces déjame solo hacer clic en enviar, y me está diciendo que no hay contenido. Entonces eso sugeriría que algo salió bien. Entonces solo volvemos a mi respuesta get y todavía tiene algunos de los datos antiguos sin duda click Enviar de nuevo en DSO Sólo estoy volviendo al autor con el i d a on si consigo autor con idea Uno que es lo que acabamos de borrar. Debería darme un 404 No telefoneado. Ahí vamos. Bueno, aún podemos recrear sobre autor si queremos. Porque no cerré ninguna de estas tinas ni por solicitudes anteriores el entonces. Obviamente, si hubiera probado la actualización del dedo del pie sobre autor. Eso no existe. A ver en qué llegamos aquí. Eso es Ah, 500 en servidor de concurrencia, Earl. Entonces no creo que uno sea muy intuitivo. Por lo que podemos duplicar de nuevo en limpiar eso. Porque si probé opiáceos de dedo un autor que no existe, no debería estar diciéndome un internet. Varias áreas deberían estar diciéndome no telefoneado, ¿verdad? Entonces sólo voy a salir de mi libro Mood on Sólo hizo ese cambio. Entonces este video se trata de borrar, pero acabamos de pasar por todos ellos fuera, vimos brechas, entendidos para corregirlo ahora mismo. Entonces, para facilitar eso, sin embargo, tendría que poner un auto extra. Entonces lo que quiero hacer es hacer el hallazgo. Voy a copiar todo esto aquí mismo. Entonces aquí es donde estoy encontrando al autor por d on. Entonces. Si no se llama, voy a dar la flecha. Yo no tenía ese cheque aquí. Estoy en la comprobación del I d. valor es válido aan den chequeo. Si el estado más pequeño es válido y cualquier cosa, cualquier cosa corta, eso sería un servidor interno, Earl. Correcto, Lo cual no es necesariamente exacto. Entonces en lugar de decirle al usuario esas una flecha interna del servidor, voy a hacer eso. Consulta aquí donde estoy para intentar recuperar a ese autor el. Después fui a comprobar si era no o no. Enseguida, luego adelante. No, estoy viendo que tengo un pequeño problema aquí. Entonces, ¿qué voy a hacer, lo ves? Está bien. Entonces en cambio, fuera de mí usando el hallazgo por i d no veo ningún dedo del pie tienen función ah madre. Entonces lo que haré es dentro de mis repositorios. Entonces esta es la razón por la que el repositorio se enfría tan por dentro. Mi autor posiciona muy fuera de las formaciones base enteramente encuentran. O mejor dicho, en realidad podría agregar a la base porque podría venir muy bien con las otras. Voy a dedo hacer otra función aquí solo voy a duplicar el crear, pero voy a llamar. Es existe. Entonces éste sólo se va a llevar yo estoy d así en la idea va a pasar en la idea, y entonces me va a decir que sí o no. ¿ Existe este registro? Correcto. Entonces porque lo definí en la base, voy a tener que volver a la clase concreta. Actualizado, implementado, faltante función, que es la suya existe. Y poco extra. Yo lo encuentro aquí está encendido entonces en su existe lo que voy a hacer usted dice algo como retorno. Um, subrayado db dot Um cualquiera ¿Hay algún fregadero? Déjame ver si hay algún fregadero. Entonces no hay ningún fregadero. Está bien. Seguro que hay algún un fregadero. Um oh, lo siento. Bebe Autores, mi bar. No a ninguna te hundas. Ahí vamos. Está bien. Entonces lo que quiero hacer es averiguar si hay alguna urgencia, un trigo, andi pensar en la función en. Por lo que quiero saber si hay algún autor. Entonces digo que es un básicamente sin su cheque estable. Si hay alguna con las expresiones Lambda. Expresiones tan sombrías. bueno ver si hay algún registro con un yo D. Eso mucho es que me pasen, ¿ verdad? Entonces esto sólo va a volver a nuestros defectos, eso es todo lo que cualquiera hace. Dice, verdadero o falso. Entonces es o hay, no está ahí. Entonces sepan que tengo dis regresando a nuestras cataratas. Simplemente estoy guardando mis cambios en el controlador de nuevo dentro de la actualización. Lo que voy a hacer es decir, um su existe hasta ahora existe sobre voy a decir en su lugar si yo, um autor, reportar comprobar su existencia. Entonces después de que existan causas, entonces voy a ver si no, él es salida. Entonces recuerda, esto es un lingote tan seguro fuerza. Si es falso, entonces quiero simplemente volver, no telefoneado justo en. Así que en realidad podría simplemente reutilizar esto en el delete en lugar de off, seguir adelante y encontrar todo el archivo así que solo comprobaré su existencia primero. Andi, puedo quitar esto, y luego puedo reemplazar esa línea donde encuentro al autor justo encima de la real eliminar a alguien para recuperar al autor aquí y luego llevar a cabo la eliminación, después validó que era exitoso o no en Warren en consecuencia. Entonces eso fue un poco Estás factorizando, y a medida que avanza, tal vez veas otros huecos. A lo mejor verás todas las formas en que puedes hacer que tu cancha sea un poco más eficiente. Pero eso es lo que es el desarrollo. Siempre vas a ver cosas que puedes introducir en el camino. 22. Revisar y añadir cambios a GitHub: nuestro chico. Por lo que hemos llegado hasta el final de esta sección fuera. O curso donde acabamos de configurar con éxito o un controlador P I para nuestras manipulaciones de autor . Correcto. Entonces, solo repasemos lo que hicimos. Nosotros configuramos algunos datos, nuevos objetos de transferencia de datos configuramos trapeando para ellos. Habríamos inyectado la dependencia para repositorio de autor para el servicio más largo on para el trapeador er fuera de curso, usted configura el dedo del repositorio, interactúa con nuestras abejas de datos en DSO. Estaremos entregando todas las operaciones relacionadas con bases de datos a través de nuestro repositorio. El dedo más largo mantener registros fuera de cada acción que se está realizando en el en la a p a n puntos en nuestra fregona er mango del dedo del pie. Ya sabes, transferencia de datos entre el objeto de transferencia de datos en los objetos reales de clase de datos habríamos implementado con éxito funciones o puntos finales toe. Consigue a todos los autores. Teoh, consigue uno Autor por i d dedo del pie, crea un nuevo autor toe actualización sobre autor existente y dedo del pie borrar sobre autor. También configuramos algunas ya sabes, cosas genéricas básicas para que no nos repitamos todo el tiempo en que hicimos uso off o logging cada paso de la semana, también revisamos algunas técnicas de depuración en DSO. Lo que vamos a hacer ahora mismo es chequear nuestros cambios para conseguir esperanza. Por lo que sólo necesitamos hacer clic derecho o solución en, luego ir a comprometer. Damos nuestro mensaje de compromiso para que sea el dinero pueda pausar el video y replicarlo si así lo deseas . Pero seguiré adelante y comprometeré todo en el fregadero. Ahorrarás todos los cambios en el camino en que empujará a nuestra nueva cancha basada para obtener ayuda. Eso es todo por este sexo en. Nos vemos la próxima vez. 23. Libros: configuración del repositorio y el servicio y: ustedes chicos, bienvenidos de nuevo en esta lección, vamos a estar sentados o posicionar Torrey y servicio para Cincinnati para nuestra mesa de libros . Por lo que he abierto la base del repositorio y utilizamos esta base cuando cazamos, imaginamos nuestros repositorios de autor o vamos a básicamente seguir el ejemplo y empezar a implementar nuestros repositorios de libros. Entonces en mis contratos agua, voy a añadir un nuevo pozo, clase, clase, pero interfiere realmente en. Yo quiero llamarlo repositorio iBook. Está bien. Nadie de nuevo. Esta es una interfaz. Entonces simplemente cambié eso a interfaz. Andi, voy a hacer que herede la bestia repositorio. Por lo que sólo amenazamos base de repositorio y el tipo de clase en esta situación es libro sobre. Entonces se va dedo del pie. ¿ Quieres que incluya una biblioteca? Y eso está incluido. Para que espinas recuerden que esta extensión se interpone si necesitamos escribir funcionalidad personalizada que no está incluida en nuestra base lo declaramos dentro del repositorio de iBook encendido , luego declaramos y luego la concretamos en el y luego implementado en la clase concreta. Ahora busquemos nuestra clase concreta y la vamos a crear en servicios, así que solo sigo adelante y hago clic. Agregar en una nueva clase y este va a ser repositorio de libros Nuestro Booker Buster va a heredar de I libro repositorio en. Entonces una vez que implemente la interfaz, vamos a estar sacando todas las paradas del método. Entonces lo primero que tenemos que hacer es inyectar nuestro contexto db de aplicación en tow, nuestro repositorio de libros. Y yo sólo lo hice rápidamente. Por lo que eso consiste en aplicación privada de solo lectura sea el objeto en, luego inicializándolo en nuestro constructor para o repositorio de libros Lo siguiente es implementar o guardar cambios. Entonces cuando bajé a mi función, di si quiero asegurarme de lo que es un fregadero en el recordar que tenemos una función llamada Guardar cambios Andi Bueno, una llamada variable cambia en estamos llamando a la función guardar cambia un sincrónicamente encendido. Entonces estamos regresando. Si hubiera cambios, ¿sí o no? A continuación tenemos nuestros crea. Entonces para hacer nuestra creación, voy a decir ah lejos. Subrayó db dot libros que Andi estoy deletreado esperando claridad. Entonces y todavía tengo otro porque no puse un fregadero a la derecha. Por lo que siempre recuerdas que espera y un fregadero. Por lo que subrayan db dot libros atracados. Entonces decimos Ada, te hundes. Entonces pasé en entidad, y luego yo ah, trigo o lo siento, regreso y luego espera los resultados fuera de la función de guardar. Está bien, así que solo voy a copiar de pie esta parte porque sé que esto realmente se hace en cada función. Algunos ajustes una copia y pega en todas las funciones aplicables. Bueno, en serio. Actualizar y eliminar. Entonces simplemente hacemos eso rápidamente. Entonces déjame volver a lo que estoy haciendo. Por lo que en el delete, queremos decir subrayado d b puntos libros no quitar en. Entonces estamos quitando la entidad. Está bien, vamos, entonces volvemos. Ahora. Ahorraríamos dentro y fuera de curso, necesitas un fregadero en la función. Entonces déjame pasar por ahí y poner un cante por todas partes. Además, sólo para asegurarme de que no lo olvide, correcto. Está bien, ahora podemos continuar, así que no, queremos encontrar todos los libros. Encontrar todos los libros es bastante sencillo. Sólo tenemos que decir esperar. Subrayar, db dot Libros puntos a lista es hundirse y eso va a sacar todo de los libros y fuera de curso necesito devolver esto. Entonces necesito el dedo del pie ahora. Podría escribirlo de esta manera. Podría escribirlo en una línea, claro, pero me gusta ser un poco más consistente. Entonces creo que en el autor realmente lo escribí donde declaré una variable. No obstante, sólo valida eso. Sí, lo hice. Dije, variable Vier es igual a eso. Entonces haré lo mismo aquí, para que esto pueda funcionar. Pero me gusta ser consistente por lo que mi corte debe ser consistente en todo momento. Entonces voy a guardar libros de hierro es igual dedo del pie el resultado fuera que en eso estoy regresando libros. Está bien. Lo mismo para encontrar por ideal. Simplemente copia esto realmente, porque es muy similar acorde alguien para guardar nuestro libro en libro de retorno. Pero entonces, en esta situación estoy haciendo, uh, libros punto encontrar un fregadero y luego estoy pasando en el parámetro I d el valor I D y entonces es existe sería algo así una vez más. ¿ Qué? Acabo de empezar este fuera manual está encendido. Guardar. Ire existe. Es igual dedo del pie un peso en el marcador. DB atracó libros puntos en. Entonces voy a decir si sé que va a ser alguna flexibilización, acuerdo? Y luego mi expresión maderera para ver ¿Hay algún libro con la propiedad? Yo d. Eso mucho Es el i devaluar entrando a través de esta llamada de función Y luego fui a devolver su existe Todo bien, on, luego último Pero de ninguna manera menos tenemos actualizaciones íbamos a decir subrayado BB puntos Libros , no en estaban ayunando en la entidad ahora una Onda mística común. Bueno, voy a decir que me encuentro con él. No voy a hacer que suene como si fueran, ya sabes, otras personas ahí, no nos topamos con ello o que se topan con eso yo no. Pero a veces es fácil olvidar qué repositorio en y una referencia tal la clase equivocada . Así que solo asegúrate de que tu está en la clase correcta o la propiedad correcta del contexto db de la aplicación en el repositorio correcto. Sé que he configurado el repositorio y el contrato. Yo sólo voy a pasar a la puesta en marcha y asegurarme de que la representación fuera del contrato y el servicio esté yo encendido. Por lo que sólo voy a asegurarme de que tengo mi repositorio de libros así como la clase concreta , que es repositorio de libros en. Una vez hecho eso, podemos hacer una construcción solo para asegurarnos de que no introdujimos nada para romper nuestro cordón en nuestros edificios. Éxito. Entonces, para no, hemos configurado o repositorio en servicio con éxito. 24. Libroos: controlador de configuración: Bienvenidos de nuevo, chicos. Y esta lección, vamos a estar configurando el controlador del FBI para nuestros libros, así que solo voy a ponerme derecho a ello y dar clic en controladores Click. Agregar controlador Goto encendido. Entonces quiero un controlador AP I vacío encendido. Entonces lo vamos a estar llamando libro. Libros. Perdón. Controla el controlador de libros. Ahora, recuerda, para nuestro dedo del mando tienen alguna funcionalidad, o estos interactúan con nuestra lógica? Por el momento, necesitábamos tener. Entonces esto significa que necesitamos asegurarnos de que inyectamos nuestra dependencia sea correcta. Por lo que necesitamos dependencia es para el repositorio en Basado en lo que vimos y autores controlador , realidad necesitamos dependencia es para el servicio de registro y también para mapeo para que podamos seguir el ejemplo. Y en realidad solo quiero copiar todo esto en lugar de intentar escribirlo viejo manualmente. Por lo que sólo copiaré todo eso del controlador del autor. Es la primera vez que ves este video. No eres tan familiar. Se puede tomar el tiempo video positivo cuando termine de cuidar estos errores. Simplemente estoy replicando lo que tengo aquí, pero necesito tener nuestra presentación fuera de mi repositorio de iBook, y voy a estar llamándolo en la partitura. Repositorio de libros no autor. Repositorio. Andi, tengo mi servicio más largo. Necesito mi soy superior algo estás usando la parte superior de otoño en fuera de curso. Nombre fuera del control. El constructor necesita ser el mismo que los controladores que intercambian que Andi cambie Oates las referencias al autor. Entonces eso es casi todo lo que necesito hacer al menos para levantarme y correr porque prácticamente son iguales en el nivel más básico. Está bien, así que eso es todo. Por lo que copiar y pegar acaba de hacer todo un minuto de mecanografía cortado a menos de 30 segundos . Entonces lo que acabamos de hacer fue configurar la lectura privada en los objetos fuera del repositorio de iBook. Yo más tiempo servicio, y estoy arriba en luego configurar un constructor donde vamos a estar inicializándolos. Por lo que aceptamos un permiso o por objeto privado que acabamos de declarar. Entonces los inicializamos dentro de ese constructor. Otras cosas que podemos seguir adelante y hacer sería incluir un resumen de esta const fuera de este controlador. Entonces yo sólo vería, um interactúa con la mesa de libros. Muy bien, Onda, si quieres, podemos ponernos esas anotaciones sobre todas las escuelas de estatus que se pueden devolver. Pero aún no estamos seguros de qué son. Alguien que deje eso solo por No on. Ahora mismo, hemos hecho algunas cosas basales. Ya sabes, La cosa es, medida que avanzamos, nos referimos a notar que necesitamos otra dependencia es porque tal vez vamos a implementar algunas operaciones de libro para las que necesitamos el repositorio de autor, correcto. Entonces el punto es que por cada dependencia que tenemos, simplemente necesitamos hacer representación de ella de la misma manera que hicimos por estos en. Entonces tendremos acceso a toda esa funcionalidad dentro del mando, pero para no, eso es todo encendido pero para no, . Hemos configurado o controlador para los libros 25. Libros: configuración del punto: Oigan, chicos, bienvenidos de nuevo en esta lección. Vamos a empezar a configurar nuestros get endpoints para nuestros libros, alguien para empezar con mi anotación, haciéndole saber a todos que esto es una operación http get que estoy a punto de empezar a escribir ahí ahora declarar que es público un fregadero tarea, regresando sobre mis resultados de acción. Y estamos llamando a éste. Consigue libros en. No se necesitan parámetros porque todo lo que estamos haciendo es recuperar todos los libros posibles. lo que fuera de curso, esta operación va a ser relativamente sencilla. Empezamos con otra vez, probamos gatos o probamos la bañera superior en catch on. Bueno, hasta ahora, nuestro controlador de autores, lo que hemos hecho fue configurar una función que se llamaría siempre que hubiera un error. Entonces vamos a replicar eso. Entonces sólo voy a ir al controlador del autor, pedir prestado ese poco fuera de la cancha, ponerlo en las últimas partes fuera de la página, alguien apoyando esto porque de verdad y de verdad, esto es lo mismo que vamos a ser haciendo a través de todos los controladores. Es nuestro estándar, ¿verdad? Entonces de verdad lo voy a poner ahí, Andi. Entonces me voy a asegurar que me refiero a esa llamada en la sección de excepciones. Entonces cuando cojo, quiero llamar a error interno encendido, entonces quiero pasar en e Ese es mensaje, ¿ verdad? No, Hay algo más que yo quería con la tala, pero voy a dejar eso hasta el fin. Entonces sigamos dentro del bloque try. Voy a guardar Ire Libros es igual dedo del pie subrayado db Lo sentimos. No DD, sino repositorio de libros dot find. Está bien, así que estoy encontrando todos los libros en. Entonces voy a volver bien con el objeto de los libros, ¿ verdad? Pero claro que necesito dedo del pie hacer nuestro mapeo en el medio, así que solo estoy corriendo por aquí. Entonces entre conseguir los libros y devolver lo que debo hacer, estoy con jiggle los libros ahí mismo en debería ahorrar. Nuestra respuesta es igual a en el marcador mis puntos superiores, paperas. Y luego estoy subiendo mi voy a mapear dos en mi lista fuera del libro B T o derechos. Recuerda nuestro DT siempre realmente lo que estamos dando al usuario o a la persona que llama Más bien el cliente encendido entonces I Mi fuente son libros, así que estoy esperando una lista fuera de libros on. Entonces lo estoy mapeando en una fregona en libro DT. O Y solo incluyo lo que necesita ser incluido en entonces eso es lo que estoy enviando de vuelta con mi bien, Esa respuesta, bien, en final es un sincrónico. Ellos ven esa línea roja diciendo que, ya sabes, no tengo función asíncrona, pero no estoy haciendo nada software asíncrono. Entonces necesito decir, Espera ahí mismo. Está bien. También modifiqué la flecha interna porque lo que me gusta hacer es ser consistente. Entonces solo voy a referir autores control y ver uno que pasé en el mensaje sobre la excepción interna. Así que me aseguré de pasar en ese mismo tipo off message former para que mis registros a través de todos los endpoints se vean bastante iguales. Entonces Pero en eso, alguna otra cosa, No, todos van a un periodo del parecer. Entonces si esto va a estar registrando lo mismo cada vez, ya que dentro hay un 500 una chica de get books on, hay un 500 son de Aero de get authors mirando el log, nunca sabría realmente cuál fuera de ellos campo derecho a menos que el mensaje indique explícitamente que, usted sabe que esto sucedió cuando se intentó este tipo de operación. Nunca sabría realmente de qué acción o control de la zona se está amando. Entonces lo que quiero presentar, ¿verdad? No, es otra función donde voy a obtener la acción del controlador en el nombre del controlador en eso. Voy a usar esos dedos, determinar qué hay que agregar a la cadena de registro para que podamos mirar el registro y saber exactamente qué controlador en acción habría disparado ese log. Por lo que una función simple separatista. Yo sólo voy a decir cadena privada encendido. Voy a llamarlo Ponte en nombres de Troller Axon, ¿ verdad? Andi no toma parámetros en. Entonces lo que voy a hacer es que voy a salvar a Ire. Controlador es igual al contexto del controlador. Puntos en. Creo que quizá necesite incluir algo aquí en alguna parte. Voy a incluir a medida que voy adelante porque realmente sí ayuda. Hablé control alrededor en realidad. Entonces contexto controlador. Está bien, ahí vamos a controlador de contexto de punto descriptor de acción no Y entonces tienes en realidad muchos de nombres de control. Estoy consiguiendo controlador. Correcto. Entonces consigo el nombre del controlador y solo duplicaré esta tierra. Entonces no subas el tipo. Que fuera de eso otra vez en voy a decir nombre de acción en la variable se llama Acción on. Entonces lo que voy a devolver es, uh, uh, cadena formateada. Algunos sólo quieren usar mi dólar san comillas en. Entonces estoy pasando el valor de la variable del controlador en. Entonces voy a decir bueyes dash, valor variable. Entonces lo que esto va a hacer es en cualquier momento que se llame, va a decir OK, ¿qué acción? qué controlador en acción está haciendo esta llamada. Podemos usar esa información, remolcar un bolígrafo Taurel para que podamos mirar el registro y saber exactamente de qué controlador y acción, el error o el adentro para la advertencia vino. Entonces déjame solo hacer eso rápidamente con el libro get. Entonces voy a decir, una vez que se llame a conseguir libros, voy a salvar nuestro Ah, ese es un lugar. Entonces ubicación lo que significa aquí es donde está. Voy a conseguir nombres de acción del controlador y tienda dentro de ubicación. ¿ Verdad? Entonces cuando regresé con el amor, voy a pre escribir cualquier otro mensaje con el texto que viene de la ubicación. Correcto. Y luego voy a decir cool en alguien que diga ubicación. Muy bien, entonces la ubicación está consiguiendo el controlador. Andi, hablé controlador terriblemente. Permítanme que actualice eso rápidamente. Con cochecito, ¿verdad? Déjame sólo asegurarme de que este carrito a través de todas partes ¿Está bien? Entonces estoy obteniendo los nombres reales del controlador, almacenándolo en ubicación. Esa es una vez que golpea para ponerte libros. Entonces en cualquier momento vamos a estar registrando en adelante, vamos a preparar final cualquier cosa. Cualquier mensaje que estamos poniendo con la ubicación viene de por lo que podemos retroceder en hacer eso en el controlador del autor más adelante. Pero ahora mismo nos estamos centrando en los libros. Por lo tanto, permítanme añadir algo de información. Ama a los nuestros Lo que está pasando cuando golpeamos para conseguir libros, en realidad. Muy bien, Así que agregué líneas de dedo fuera en registros de flujo justo aquí en la línea 38 mintiendo 41 en dso Lo que hice, acabo de obtener la ubicación como lo hicimos para internet. Flecha en. Simplemente lo anexé a algo para decir llamadas intentadas. Entonces en lugar de intentar escribir una frase como lo hice para los autores para los Longs para los autores, donde tuve que ver intento, conseguir todos los autores y conseguir exitosamente todos los autores en su lugar, solo digo que tú llamar al controlador Libros y acción Obtener libros. Andi. Ese es un intento que llama. Entonces si fue exitoso, solo digo que la misma ubicación fue exitosa. Entonces para mí, eso reduce la cantidad de detalle después de poner y no, mi escala de amor más consistente porque estoy escribiendo estas frases. A yo Lo escribes de esta manera. No. Uno. Después escríbalo de manera diferente en este archivo de registro. Y para que sepas que no es consistente en todos los ámbitos. Entonces eso es sólo un poco de adición del dedo del pie lo que estamos haciendo aquí. Como dije más adelante, retrocederemos y solo podemos formarnos. la sección de autores se confirmó que el controlador de autores estaba a la altura de este estándar, ¿no? Entonces tenemos todos los libros. Otras cosas que me gustaría incluir serían nuestros tipos de respuesta, que son 205 100 y fuera de curso o resumen para declarar obtener todos los libros. Está bien, así que eso es todo para el get all o los get books. El siguiente que me gustaría es el get book by I D. Muy bien, así que voy a ir de pie por debajo de éste. Sigue siendo un http, consigue así que tengo que repetir eso. Excepto que este get es un poco diferente porque toma un parámetro. Entonces por favor no olvides esta parte en. Entonces vemos que d en. Después podrá calificar aún más los tipos de datos perimetrales. En realidad puedo decir algo como llamaría a int para que la documentación específicamente diga que está esperando una entrevista en lugar de vestirse. Está esperando una idea. Entonces lo dejo así y veremos si hace alguna diferencia material. Cuando miramos la documentación, solo voy a copiar estos tipos de respuesta aquí y pegar realmente entender para copiar todo en este teléfono que se muestra en base porque dos funciones son muy similares. Pero por supuesto voy a cambiar el nombre de alguien a ver conseguir libro en lugar de descuento. Ponga libros en, entonces esto es lo que va a tomar un parámetro int idee. Ya estamos consiguiendo las localizaciones. No necesito volver a hacer eso. Y luego estoy entrenado operación donde puedo ver intento de llamada para I D en d. solo diré lo que me estaba intentando. ¿ Todo bien? Entonces quiero decir, se puede hacer grande, pero entonces, quiero decir, ya sabemos dónde está el intento de llamada para esa idea. Entonces sabemos que es un intento de llamada para el libro get con el I. D. Así que es fácil inferir que estamos tratando de conseguir ese libro con eso yo dirijo. Ah, lo que hacemos aquí, sólo voy a cambiar del coro. Por lo que Vier libro es igual a libro Repositorio atracado hallazgo por D En pasamos en el I d parámetro aan den. La respuesta va a ser un mapeo fuera del libro GTO, no una lista. Entonces solo estoy haciendo algunos retoques menores aquí en lugar de escribir toda la cancha de nuevo desde cero, luego conseguí con éxito disco con yo d encendido entonces. Está bien, esos son todos mis registros para ser claros. Eso está todo encendido. Después devolvimos la respuesta. nadie le voy a presentar. Aquí está el cheque para ver si el resultado del libro es equivalente y nulo en. Entonces si lo es, entonces me voy con el dedo a la derecha. Ah, el amor en esto Alguien a amar la advertencia desde prendió registro informar fue a lug advertir Onda uh, falló en recuperar registro para I. D escribe. Entonces quiero decir campo, dedo del pie recuperar. Entonces ya ves, esto es de lo que estoy hablando. Yo lo escribí de una manera de entrar. Escriben autores. Dije en autores también con esto no fue llamado Por aquí, estoy escribiendo cirugía de campo, así que eso es lo que estoy viendo. Cuando escribes frases, tiendes a ponerte muy puntiagudo y luego obtienes más puntos porque creciste en el campo y así eres amores se verán inconsistentes a través de lo que tus edificios quieren que sean consistentes. Yo voy a escribir el formato aquí, y luego vamos a empacar camión al controlador del autor y cambiarlo todo hasta que hagamos el tala. Entonces siéntete para recuperar registro con I d Andi I de Colon. Justo en. Entonces, fuera de curso, vamos a regresar. No estoy telefoneado. Entonces no encontramos ese registro Eso es un 44 y estábamos registrando ese campo de recuperación. Muy bien, entonces tenemos nuestros libros de conseguir. Tenemos nuestro get book, así que solo estoy meditando esto para un poco de pruebas o con la validación de que el anhelo realmente marca la diferencia también, no hay libros en este momento, así que solo queremos asegurarnos de que obtener sobre la escuela de respuesta correcta. Entonces solo voy a entrar a debug en prueba con Cartero, acuerdo? Dije que iba a probar cartero, pero sólo voy a usar Swagger, así que sólo voy a ampliar esto. Entonces voy a decir, prueba tote y luego ejecuta. Entonces estoy recibiendo mi respuesta 200. Está bien, para que podamos ver que estamos Bueno, no hay libros en la base de datos. Estoy recibiendo la respuesta 200 y déjame simplemente tratar de no con el parámetro para ricos get book con el parámetro alguien para decir, Pruebe sapos on. Entonces pongo en un I d. valor off one on. A continuación, haga clic en ejecuta. Obviamente nada fue teléfono. Entonces estamos consiguiendo que cuatro o cuatro. Por lo que se espera eso. Pero a lo que realmente quiero poner atención es a los registros en el mismo archivo de bloque tendrían tanto al autor trabajar en los trabajadores del libro. Yo estoy haciendo las dos en el mismo día. Pero lo que pasa es que te diste cuenta de que cuando miras la afluencia de libros, puedes ver que son los libros, conseguir libros, conseguir libros, acción e intento de causa exitosa frente a eso. Quieres decir que se intentó por eso y no se pudo recuperar. Pero eso es sólo una advertencia porque un fracaso para recuperar un registro que no cree que esto no es una flecha, pero sólo ponemos una advertencia, si acaso. Es motivo de preocupación, ¿verdad? Por lo que puedes ver aquí donde se ve un poco más estructura porque puedes decirle al controlador que puedes decir la acción en. Entonces podemos tener mensajes estandarizados de acuerdo a qué parte fuera de la función o funcionalidad se está accediendo versus agujero. Lo estábamos haciendo inicialmente donde estaba justo, ya sabes, libre, libre para todo texto. Entonces lo último que voy a hacer para esto es en el resumen sobre voy a decir consigue un libro por I D. Sobre el nombre Haram dejo eso solo y devoluciones son registro de libro on. No creo que ponga las devoluciones de este al menos fuera de los libros, y eso es más o menos por sentar las acciones get para nuestro controlador de libros. Entonces lo que voy a hacer es fuera de cámara. Volveré al contralor del autor y luego revisaré. Entonces estamos haciendo el registro y que lo podamos pasar juntos y el siguiente video, pero eso es todo por ahora. 26. Libros: configuración create create Endpoint: ustedes chicos bienvenidos de nuevo en esta lección, vamos a estar configurando para crear endpoint para nuestros libros. Pero antes de que llegue, solo quiero que revisemos a nuestro controlador de autores y les enseñemos algunas de las modificaciones. El tiempo, carne. Por lo que la última vez que discutimos hacer sobre la tala un poco más consistente. Entonces lo que hice fue introducir la función que devolverá el nombre fuera del controlador y el nombre fuera de la acción que actualmente está activa se están interactuando con a la vuelta este componente stream off controller dash action necesita justo en dso. lo que estamos usando eso es pasar a nuestro tala para que en lugar de trenes sonaran frases completas o ser demasiado detallados, podamos tener un poco más de consistencia a través de todos con un poco más de simplicidad, ¿ verdad? Entonces solo estoy fingiendo el mensaje, cada mensaje, con la ubicación siendo el controlador, acción de guión en el mensaje que se debe pasar. Por lo que hice eso en el get autores on. Lo hice en el get author, y también me aseguré de hacerlo a través de todo el error interno. Um, teléfono mostrando llamadas. No, no lo he hecho a través de los demás. Porque a medida que vayamos junto con el controlador de libros, estaremos estableciendo el nuevo estándar. Y como usted dijo, el nuevo estándar en el control de libros son sólo backtrack y asegúrese de que el controlador de autores tipo de seguir el ejemplo. Por lo que de vuelta en nuestro controlador de libros, ya me tomé la libertad de escribir las acciones. Pueden pausar el video y escribirlo Donante puede intentarse a ti mismo. Por lo que tengo una tarea pública de casing off action results. Se llama Crear Onda. Tenemos nuestro parámetro que es nuestro de cuerpo una notación sobre que estamos tomando, um on object off type book crea D para saber la línea roja está ahí porque no he creado el detalle para que podamos hacerlo juntos. Entonces sólo voy a copiar eso. Ve por el dedo mi libro bto archivo on. Bueno, sólo voy a copiar el libro objeto GTO en base. Está debajo. ¿ Qué? Voy a llamarlo libro crear detalle sobre y lo que no necesitamos ahí dentro serían ideas. No necesito crear el libro con el I. D. Sé amable si podemos crearlo con el autor. Entonces me voy a llevar todo el objeto para detalle de autor. Pero lo que realmente necesito es autor me d en. Voy a hacer que éste no sea conocible, pero es muy requerido porque no quiero ningún libro en mi sistema que no esté asociado con un autor, ¿ verdad? Por lo que fui a mí, el también d requirió. Está bien, en todas las cosas que se van a requerir incluyen el título. El no necesito el año. Eso es todo. El ser hielo se requiere en el resumen para resumen no es necesariamente necesario. Pero lo que voy a decir es que estoy dispuesto a aceptar un máximo de 500 caracteres, algunos poniendo la anotación, para ver que la longitud de la cuerda puede ser hasta 500 fuera de curso. Si vas a poner en esta validación, necesitas verificar con la bestia de datos porque recuerda, hicimos primero esta base de datos. Necesitan asegurarse de que la validación que tu aplicación aquí no viole las restricciones en el ritmo real de los datos. Entonces si la base de datos así lo dijo India marcha son 50 entonces quieres asegurarte de que tu enlace de cadena se está apegando a eso. Entonces creo que para resumen, había puesto marcas de llantas de environ, así que lo dejaremos en 500. Entonces a pesar de que las bases de datos marquen, estoy boxeando a los adultos a los 500 del lado del cliente, correcto, no estoy haciendo imagen requerida. Y tampoco estoy haciendo el precio requerido. No, lo que pasa es que si hubiera incluido el DT o en el autor GTO, objeto o propiedad u otro en el libro crear detalle, entonces habría dado a la persona la oportunidad de llenar algunos otros detalles que podrían no necesariamente tienen frijol preciso. Por lo que una vez más, el detalle nos ayuda a seguir amantando. Ven a controlar qué? Permitimos que los clientes ingresaran a nuestro sistema. ¿ Verdad? Por lo que tengo Mike libro crear GTO creado en DSO. Ese aire se va sabe que ve que esa clase existe Ahora nuestra creación fuera de un libro siempre va a empezar con nosotros consiguiendo la ubicación. Por lo que obtenemos la ubicación. Sabemos que sabemos dónde estamos. Sabemos por qué estamos consiguiendo ubicación ¿verdad? El siguiente es nuestro try catch. Entonces me voy a probar, luego atrapar la excepción. Llámalo E encendido. De verdad sólo voy a copiar esta línea porque ya está ahí. Está bien, para que eso se cuide, al menos para el manejo de aire apagado. Cualquier excepción, No va dedo del pie agregar aliado en remolque. el maderero con otra línea fuera de cancha que va a registrar esa operación de crear intentóel maderero con otra línea fuera de cancha que va a registrar esa operación de crear. Entonces digo ubicación, Colón, crear intento justo en. Entonces voy a seguir donde voy a decir, si el objeto es no, entonces quiero toe log una advertencia. Entonces me va a encantar advertir para ver que en esta ubicación y el Inter Quest se presentó el devuelto la búsqueda de bateador con el estado modelo. Mi siguiente comprobación es si el estado modelo es violencia, Recuerda, Recuerda, solo pondremos en la torre notaciones del dedo del pie, validaremos los datos que están entrando. Entonces quiero decir, si el estado modelo no es válido, entonces queremos una advertencia lager para decir que los datos estaban incompletos a devolución sobre solicitud con el estado modelo. Entonces, a medida que construyes AP, cero me doy cuenta de que las operaciones básicas se especie fuera de la misma manera a través de las diferentes entidades o los diferentes controladores relativos a cada entidad. Por supuesto, Si estás haciendo operaciones especializadas como calcular cosas entre medias, entonces puede diferir. Pero esencialmente, queremos asegurarnos de que estamos haciendo los mismos tipos de cheques en el camino porque cada uno puede verse plagado por estos fuera de curso caso por caso. Es posible que tenga comprobaciones específicas específicas de la operación que se está llevando a cabo. Si pasamos de estos dos. Si afirmaciones que la suposición es que el objeto del libro está en un estado válido, así que quiero hacer es insertarlo por lo que vamos a guardar Nuestro libro es igual a on. Lo que necesito hacer es mapa desde el d t o Objeto. Por lo que ma por punto mapa en mi dedo mapeo moppet. The Objects off type book on my source es book E T. O. Así que no estoy diciendo Dame qué libro sobre detalle de libro teniendo en común en crear un objeto off type book on entonces una vez que tengo este objeto en qué guardar, nuestro es tan sess es igual de dedo del pie, espera una llamada a mi repositorio de libros donde voy a llamar a mi función de creación sobre pasado en este libro. Entonces necesito comprobar si fue exitoso. Entonces si no es éxito, entonces ¿qué quiero hacer? Voy a llamar a mi error interno y decir que en esta ubicación, el campo de creación. Entonces eso si no fue exitoso. De lo contrario, sólo voy a poner un retorno final sobre Voy a devolver creado así como una carga útil que contenga la fecha en la que me acaban de crear. Entonces necesito decir, ¿ Eres tú un primero, que sería el mismo crear derecho en. Entonces el objeto sería nuevo sobre ellos pasando en un libro, acuerdo? Y eso es lo que se acaba de crear Así podemos ver aquí que bueno, llenamos todo para el peor de los casos en nuestros zalis que nos conocemos en. Tratamos de iniciar sesión tanto como sea posible. No, sí cambié un poco el formato de los amores. Entonces lo que dije haría con el control del autor. Voy a retroceder. Entonces quiero tomar esta primera línea y asegurarme de que la primera vez que mis autores controlen se vea igual, ¿ verdad? Por lo que ubicación creada, intentada en. Entonces si está vacío que voy a decir ubicación. Por lo que la solicitud vacía presentada. Eso no está tan mal. No quería ir mucho cambio. Nos encanta la advertencia de los datos incompletos, algunos simplemente asegurándose de que en los mismos puntos fuera de cada controlador, los logs lo verbo fuera de los registros será más o menos. Ve justo que encima de un ensayo en un lado, Andi en el día dos palabras en el otro lado. Por lo que la consistencia una vez más es clave. Entonces, finalmente, no puse nuestro más tiempo que está adentro para iniciar sesión para Lo siento, soy ataque. Eso se acabó en un maderero cuadrado Doctor Logue en cuatro para decir eso en el lugar. Entonces solo hacemos esa ubicación. Colon on on. Ves, ese es el Cree Shun fue exitoso. Y entonces, si quieres, podrías incluso incluir el objeto ahí para ver que este autor fue creado en ese momento, ¿ verdad? Entonces eso es bueno para la tala. Además, tal vez quieras registrar Ah, una segunda línea para ver objetos creados para que solo pudiera pasar en un libro. A ver si eso funciona. A lo mejor nos mostraremos todos los detalles fuera del libro. A lo mejor con tu show y en línea de objeto en el amor pero ya veremos para que pueda intentar eso más. Y autores también en. Tan solo asegúrate de normalizar esta línea también. Está bien, sé que por aquí sería autor, no espía. O quizá debería aguantar en este terreno hasta que validara con el libro. Está bien, así que ahora que terminé con la cancha por crear cartas validadas, me voy al barco amarrado. En realidad, no entres más a depurar aún. Dejamos bastantes cosas. Entonces uno no puse mi verbo, que es http post y eso se acabó. El crear, ¿verdad? También necesita dedo del pie. Bueno, no necesito hacerlo, pero es bueno sólo incluir estos códigos de devolución al mismo tiempo. Entonces solo voy a copiar uno existente. Entonces sé que estoy regresando. Aquí no un 200, pero empiezo un taburete uno el cual se crea, ¿no? También estoy haciendo una flecha interna del servidor en. También estoy haciendo malas peticiones, así que déjame solo asegurarme de tener representación fuera de esas 400 pero solicitudes. Muy bien, Andi, creo que eso es todo. A lo mejor mientras estoy aquí, sólo puedo poner mi resumen, pero creo que ya terminé con esta función, así que crea Ah, nuevos son crea. Perdón. Un nuevo libro, justo en git regresa. Bueno, nada. Por lo que nuestro libro se objeta. Está bien, entonces, no, podemos ir a desacreditar con más confianza. Por lo que vamos a probar esto en Cartero. De acuerdo, entonces estoy en modo debug, ten toda mi documentación, y me están mostrando una muestra de la carga útil que se necesita pasar con este deporte. Yo sólo voy a copiar esta muestra sobre el dedo del pie cartero ya arrancó una nueva tina en. Tengo el punto final del FBI slash books. Lo tengo en post sobre. Se trata de un cuerpo herramientas en bruto. Después cambia esto a jae sun encendido, luego desmenuzado. Entonces, no, necesito llenar esto. Entonces este es mi primer lleno en el año que ver, el año fue 2000 y 10 hielo siendo Eso suele ser como un números identificativos únicos. Sólo estoy poniendo ahí un número aleatorio. Resumen Voy a dejar eso en blanco. Um, la imagen dejando ese espacio en blanco también, eso no se requería. Por lo que la imagen realmente sería un camino a la imagen. En caso de que te estés preguntando sobre probablemente estés decepcionado de que no esté siendo ningún hombre. Es realmente un camino a la imagen. Entonces lo que no quiero hacer es dejar que el AP y hacer el trabajo fuera conseguir subir la imagen y hacer la conversación en. Más bien, preferiría que los clientes consumiendo a mi bebé tendría una carga alguna subida a algún servidor, correcto, porque no voy a estar almacenando esta imagen en mi servidor. Pero subiste a tu servidor el. Entonces me mandas el camino, bien, Pero cuando lo estamos haciendo, el cliente probablemente estará usando un CD, y de todos modos, así que lo subiremos a un servicio Cdn y luego la tienda el camino a la imagen dentro de este campo, ¿verdad? Entonces podemos seguir adelante y estoy poniendo el precio a $10 en. Dejemos en cero la idea del autor. Entonces sé que esto va a fallar, y eso es validar que vas a fallar porque el autor, yo d Probablemente me darás en ah, 500 errores. Entonces intentémoslo. Por lo que cuando haga clic en enviar Todo bien. Entonces como pensé que obtuvimos ah, 500 error on Si echo un vistazo en el archivo de amor, veré que está diciendo, Oh, Oh, mi mapeo. Por lo que no fregé. Mi libro crea detalle. Está bien, así que déjame solo salir del barco amarrado que acaba de ver un poco de diversión hace un rato y me detengo . Por lo que esta parte siempre me pone. Y me alegro de que estés viendo que me mete porque todos somos humanos. Entonces si te hace llegar, entonces no te sientas. De todos modos, si no te conseguiste, entonces Genial. Entonces solo queremos asegurarnos de que tenemos nuestro mapeo, Así que sea cual sea el mapeo que estuviera haciendo en la aplicación, necesitamos asegurarnos de que tengas una configuración. Entonces, repasemos por eso otra vez. Muy bien, Así que intentemos eso otra vez. Por lo que hago clic en enviar, le doy algo de tiempo. ¿ Todo bien? Entonces tenemos otros 500 veamos la razón de este 500 on die. Basta con volver a cargar el archivo de amor. Entonces no, estamos viendo Ah, lindo. Long Un bonito, largo, um, mensaje de excepción. Entonces podemos ver aquí que en cuatro libros crear, crear, crear, intentar y luego vemos libros de época crear al aire ocurrieron mientras decían eso. Cuento tan largo, corta distancia, diciendo que estoy haciendo referencia al autor Eso no existe porque dije cero. Entonces cuando pongo esto el autor también, creo Y aún tengo mi solicitud de autores aquí. Entonces sé que gané autor con el i d a Así que sólo voy a decir que este libro fue escrito por un k on. Entonces voy a dar click, mandar nos dan un dos un uno creado en el Así vemos que el objeto del libro volvió sobre desasociado con autor también. Entonces lo genial aquí es que Bueno, déjame ver si realmente va a trabajar con el dedo del pie. Creo que puede necesitar hacer algo al repositorio para que esto funcione. Pero esencialmente, cuando nos subimos al autor, ven esta lista fuera de los libros. Debe seguir la lista fuera de los libros. Entonces déjenme sacar a ese autor específico, que también es autor. Andi tick enviar. Está bien. Entonces no necesito modificar mi repositorio un poco de dedo incluir la lista fuera de libros, porque esencialmente, lo que esto está diciendo es que cuando consigues al autor, también debes sacar la lista de los libros que él o ella tiene en su repertorio o se relacionan dedo del pie en la base de datos. Entonces acabamos de crear Ah, libro que fue escrito por autor con I D a Silas. Este libro debería subir bajo ese repertorio de autores, pero lo haremos más adelante. Eso no es preocupaciones por no, sólo estamos contentos de quedamos satisfechos Eso o libro se está creando ahora si violo la validación la. Entonces no voy a presentar un título y fui a intentarlo de nuevo. Entonces ves que estamos recibiendo la solicitud 400 mala con nuestro error de estado modelo. Entonces creo que eso lo resume para nuestra operación de creación y simplemente actualizando el amor. Entonces les voy a presentar a nuestro pequeño que básicamente simplemente obvia el archivo de amor automáticamente. Por lo que ninguna parte más paquetería siempre te pregunta o te deja saber que ha cambiado un poco la luz cuándo introducirla a otra herramienta que solo te muestra como están corriendo trail fuera del log fat y es realmente genial. Yo Una cosa genial de swagger que quizá no haya mencionado es que si miras hacia abajo a los esquemáticos donde te muestran los detalles, sí te dan el resto. Asterisco rojo al lado de los que a ti, el desarrollador habría marcado como requerido. Por lo que dijimos que se requería título. Ser hielo se requiere en el autor Addie requerido. Entonces eso significa que cualquiera que envíe un libro podría haber omitido tan en objeto o un Jason String con solo título SBM en hija Addy y habría igualado esos y creado el libro con éxito. ¿ Verdad? Entonces eso es todo agradable y limpio Soldier hace la documentación sobre que la resume para la creación off. 27. Libros: la actualización de la versión del Endpoint endpoint: Bienvenidos de nuevo, chicos. En este video, vamos a estar explorando configurar nuestras ocho funcionalidades para nuestros libros. No, ya me adelanté y hice algunas cosas y puedes pausar el video en el momento oportuno y simplemente copiarlo. Pero te estaré guiando por lo que ya he hecho en lo primero que hice fue crear un detalle de actualización. Por lo que la actualización 82 tiene que tener el i d. Porque necesitamos rastrear la idea fuera del registro que se está actualizando en Gueye También para llamar a algunas de las cosas. Entonces saqué yo s bien. Entonces no quiero que nadie regrese y cambie El es ser porque ese es un número de referencia único . Lo pones, Se queda bien? Um, es más fácil. Se quitaron el libro sobre recreado con un carro hielo siendo que sebo ellos para cambiar ser hielo , Eso es y eso soy solo yo. Por lo que una vez más, formas tus datos en función de los requisitos del negocio fuera de la aplicación que estás construyendo. Entonces no quiero que nadie entre y cambie el es estar fuera de cualquier libro. No lo he incluido en el opiáceo GTO. Andi, también eliminé el autor, um, propiedad de ese detalle de actualización. Porque no quiero que alguien venga después y cambie al autor del libro así como así. Por lo que una vez más, estás en total control de lo que cualquier cliente es capaz de hacer a tus datos mediante el uso objetos de transferencia de datos. Después de crear este objeto de transferencia de datos Una vez más, puedes pausar el video y escribirlo o copiarlo. Fuimos a la cartografía en. Nos aseguramos de crear la configuración de mapeo se han capturado en el pasado donde intentamos operar. Apenas me di cuenta de que no nos acordamos de poner en el mapeo, así que me aseguré de hacerlo esta vez encendido entonces en el controlador de libros. Ya escribí las acciones. Yo solo te voy a guiar a través de ella, pero de verdad mucho se ve igual a lo que hicimos en el autor, verdad? Tenemos nuestra anotación, http, poner. Tomamos el i d en D, haciendo saber a todos lo que produce. Por lo que produce tipos de respuesta. Herramienta 4 405 100 para los internos sirviendo error en. Entonces sigo adelante y defino o fundo como una tarea de función asíncrona. Yo resultados de acción. El nombre está arriba un poco en él toma un parámetro en, pero también está buscando una carga útil del body off type book off the GTO on le llamamos libro GTO. Empezamos por conseguir la ubicación, y sabemos que hacemos esto para que podamos seguir de cerca lo que se llama, ya sabes, ya sabes,en nuestro inicio de sesión. Entonces lo intentamos. Entonces déjame simplemente saltar a las partes de captura donde hago el retorno regular. Error interno. Francamente, esta línea es la misma línea en todas las demás acciones tomadas esta copia y pega que embarcaciones fácilmente para la transacción. Básicamente estamos haciendo las mismas clases fuera de cheques que hicimos en la función de actualización para nuestro controlador de autores, ¿ verdad? Entonces soy el primero en iniciar sesión fuera de curso. Cambié el verbiaje para el registro, y vamos a retroceder y hacer lo mismo en el controlador del autor. Pero sólo trabajemos con ello. Por lo que tenemos el más largo en estaban registrando que se intentó la actualización sobre actualización en registro. Yo d i d onda. Conocemos la ubicación y comprobamos si la idea es menor que uno o la carga útil es no o si el yo d en el perímetro no coincide con el i d en la carga útil entonces diremos por la solicitud Onda, también nos encantará la advertencia Esa actualización campo con datos malos i d colon idea ¿verdad? También vamos a comprobar si existe. Por lo que llamamos Booker Postura no es existe pasando el i d y luego decimos Si no existe, entonces nos va a encantar la advertencia que sentimos para recuperar registro con el i d. on volvemos, no telefono Más tarde, vamos a revisar el estado modelo para ver si es válido. Entonces por supuesto tenemos algunas cosas que se requieren en el opiáceo que más pasas en el título en el que te. Bueno, se requiere nada más, serio? Por lo que en la actualización, podrías limpiar todo lo demás donde tu mayor persona al menos un título para que procedas en la mudanza. déjame validar. Entonces pienso en el Creador. Entonces necesitábamos titulo sobre dados siendo yo no te estoy permitiendo que hagas el ser de hielo. Entonces no voy a requerir el ESPN así que todo lo que estoy requiriendo el título porque eso es todo lo que se les permite cambiar. Por lo que no me puedes enviar un título vacío o ningún título en absoluto. Está bien. Ah, así que voy a seguir y decir libro Vier. Entonces si se pone este incendio, entonces voy a fregar los objetos de transferencia de datos a la clase de datos, que es libro on, luego recogerlo y luego esperamos el resultado fuera tan off enviando que la solicitud a la base de datos si no es un éxito de lo que regresamos Ah, 500 error. Y anhelo que en este lugar, fuera del campo en déjame solo calificar ese campo de actualización para registro con ideas. Entonces déjame solo un pin que para que conste con I D i d. que sepas, es más específico donde falló. Después iniciamos sesión. Se trata de una orden judicial. Debe ser un log in para la derecha. Por lo que es buena revisión del dedo del pie sobre tu trabajo. Entonces estoy iniciando sesión para eso. El registro con idee que se actualizó con éxito en Estoy devolviendo un nuevo contenido. Está bien, así que una vez más a medida que pasaba, podrías tener pausar un video sobre Does despegado o, ya sabes, volver a crear en tu propio proyecto lo que necesites. Pero voy a seguir adelante. Voy a seguir adelante y probar esta acción. Alguien va a desangrar amarrado. Yo soy Indy. Tanto el ánimo como yo tenemos un cartero, alguien a quien abrir. Una nueva pestaña para mi nueva prueba de función en esta va a ser un puesto en los puntos finales, que es un p I slash libros Onda. Yo estoy Obviando libro con el d a yo creo que ese es el único libro tal vez que tengo en la base de datos. No, ¿qué? Voy a destritarlo aquí es tan flexible. El validación en objetos de transferencia de datos hace que sea de punta los datos de transporte. Entonces sí dije que necesitas el i d. una manera u otra, se va a comprobar contra ID justo en ese entonces. El único que es realmente, realmente requerido para que una actualización sea soy un carted off necesidad de tener éxito es el título, ¿ verdad? Entonces si solo miro en el en la documentación que veo aquí también, eso son autores. Me refiero a libros en la documentación, veo dónde está esta toda la carga útil. Entonces esta es toda la carga útil que importa. No obstante, si sólo quiero allá arriba el título de lo que sólo puedo pasar en un nuevo título. Entonces esto es sobre título obviado. Está bien, en Así enemigo solo quita esa coma callejera en base a la validación en la que la idea cree que está demasiado. Entonces hago clic en Enviar encendido entonces se va a golpear nuestra acción, pasar por todas las validaciones encendidas, luego devolver un tour de estado por ningún contenido solo para mostrarte que obtuvo los datos. Hice las validaciones. Vio que el título que es el único bit de datos requerido realmente basado en validaciones de objetos de transferencia de datos está ahí en. Después pasó con la operación y no, se actualiza. Entonces si vuelvo a mis consigue, ¿tengo un get Oh, bueno, bueno, sólo lo haré de cartero, así que solo consigo todos los libros, pruebo sapos y luego ejecuto. Entonces vas a ver el único libro con el I D a y título actualizado justo en donde está todo lo demás. No, porque no proporcioné un valor. Ahora, aquí es donde tenemos que estar. Cuidado, porque ¿qué pasó? ¿ Es ahí donde no proporcionó un valor? Automáticamente asumió no en DSO Si presentaba no, anularía el valor que hay ahí. Entonces, ¿ideas de autor? No, No, porque lo retiré del GTO. Andi, presenté una carga útil que no, um, hizo um, referencia a ella. Correcto. Entonces me voy a ese ajuste. Entonces voy a volver a mi DT todo en. Yo lo voy a decir. Por eso siempre es bueno solo hacer una pequeña prueba para ver si lo que sucede después de hacer una operación es deseable,¿ operación es deseable, verdad? Entonces voy a volver a mi off the detail on voy a poner al autor d Muy bien, alguien para ponerlo como se requiera. Entonces voy a hacer cumplir a los clientes que deben decirme quién es el autor. Por supuesto, desde el lado del cliente, podemos tipo de controlar cómo estos datos llegan a través de la tubería o hacer recomendaciones en base nuestra documentación, pero para no, voy a decir que se requiere porque no puedo tener y no para mi autor. Bueno, en realidad, puedo, porque sí indicé que autor podría ser No. Entonces supongo que necesito volver con mis analistas de negocios y hacerlo bien, pero por no, solo lo dejaré en blanco. Déjalo Pensamiento en podemos proceder. Entonces no, sabemos que nuestra operación de actualización está funcionando. Nosotros tipo de estándar yo algunos fuera de estos mensajes de registro. Entonces solo voy a retroceder a mis autores, um, um, función de actualización en mí, estos cambios y ya ves, eso es algo genial. Cuando lo tengas consistente, solo puedes copiar y paz. No tienes que volver a escribirlos, así que lo escribes correctamente un lugar en. Entonces solo puedes copiar y paz a través de todos tus demás y los puntos en tus amores saldrán luciendo limpio. Onda Muy comprensible para cualquiera que los esté mirando ahora. Sí dije que te presentaría una nueva herramienta que te ayuda a ver tus registros de una manera un poco más eficiente. Creo que es resultados más eficientes sobre es de verdad, um pero voy con el dedo del pie contarte de su derecho después de que copié esta línea en el nombre de ella es cola desnuda, que puedas llegar a su página web yendo a cerveza, cola, cerveza, metal, soft dot com slash cerveza tail art. Y hay una versión gratuita, así que sólo voy a desconocer la versión gratuita en. Es realmente una versión independiente para Windows. Es solo en ejecutado un archivo y haz clic en él, lo ejecutas y luego lo que te permite hacer es seleccionar un archivo. Entonces voy a abrir el dedo del pie, encontrar mi archivo de registro, y luego una vez que lo abra, sólo va a abrir ese archivo. Muéstrame todo lo que ha estado ocurriendo en el expediente. Tiene una opción que es su cola de seguimiento. Por lo que a medida que se obvie un incendio, el movimiento sólo seguirá adelante. Entonces lo que voy a hacer es volver a debug, amarrado, va a encender en un P. que llamo, y sólo voy a mostrarte cómo se mueve el archivo de amor en cola de cerveza. Está bien, así que tengo cola de cerveza de un lado en Die, tener cartero en otro, dijo, sólo voy a hacer aquí hasta un poco más pequeño encendido, entonces sólo ver cerveza entera hasta que se comporta cuando haga unos pocos AP Yo porque sólo voy a hacer unas llamadas, Um, un Um, agrietado en toda la pizarra, sólo hacer clic y hacer clic y ver cómo se mueve Bertil. Entonces tal vez la máquina se está moviendo un poco despacio, para que sepas que no está tan limpia como debería parecer. Pero eso es esencialmente lo que Bertier trae a la mesa. Por lo que es bueno para las épocas de entrenamiento , ya sabes, en tiempo real cuando necesitas ver exactamente qué está pasando cuando está sucediendo, dónde está sucediendo. Y luego te da resaltado para que realmente puedas hacer algo como puedes buscar el error de cadena. Creo que podría ignorar caso, pero luego quiero resaltar, o al menos hacer leer todo texto de la era. Entonces en eso, entonces pienso, OK, OK, y luego ves cualquier línea con la palabra error se resalta en rojo, así que al menos puedo ver exactamente dónde están los errores. El militar es una herramienta de monitoreo realmente genial. Como dije, solo debes saber que es ligero, así que sabes que es fácil para ello. Ah, hasta obtener ayuda con sus actividades de depuración a medida que se desarrolla 28. Libros: configuración de DELETE Endpoint: Bienvenidos de nuevo, chicos. Industria. Iban a estar activando el endpoint de eliminación para los libros. No, lo que te voy a desafiar a que hagas es una pausa. Entonces minimiza este video sobre los intentos de crear este endpoint por ti mismo. Muy bien, Así que ya tienes en algunos puntos finales que hemos creado. Ya tiene el controlador autores con un método de eliminación que desafía a los spas video minimizan en. Intentó a ti mismo. Ya lo he hecho. Entonces de verdad sólo te voy a guiar a través de ella. Entonces ya sabes, después de que termines y probablemente retomaste, ¿ verdad? No. Entonces solo voy a decir que podemos revisar todo el trabajo juntos. Entonces si tienes algo diferente a lo que puedes financiarlo contra mi no problema. Por lo que empecé fuera de curso con mi resumen de descanso. A book by i d. retorna el parámetro. Dejé eso en blanco. Pongo mi verbo apropiado en. ¿ Sabías eso? Espero un permiso, er off i d o llamado idee. Perdón, pongo todos mis cordones de respuesta, pero aun así 104 404 04 y 500 encendido. Entonces seguí adelante y creé mi función sincrónica fuera de tarea yo resultados reales llamados elite con mi perímetro en tailandés de Declaré mi ubicación porque por supuesto necesitamos esto para iniciar sesión entonces mi try y caps off course The catch luce igual It mira en cada otra acción realmente y verdaderamente así que debería ser el fácil aspirar a seguir adelante. Tengo mi punto más largo log in for location to say lead try on record with idee que esta bien en dso A medida que construyo estos mensajes más largos, me doy cuenta de que el verbo ege es amable por estandarizado el lenguaje a través de toda la tipos de operaciones. Por lo que el plomo intentó en registro con idee que en los opiáceos han intentado actualizar en registro con I D eso encendido. Creo que tengo algo así en el pozo este es auto intento, así que debo decir, se intente grabar con. Pero el punto es que estoy como estandarizando el verbo. Es una especie de armar como, ah, una plantilla para llamar. Entonces, cada vez que sientas que te estás repitiendo, probablemente estés encendido. Hay un principio en la programación llamado seco. No te repitas. Entonces cuando te sientas así, te reto a crear otra abstracción fuera de lo más largo probablemente tenga, como algunas plantillas estandarizadas y encontrar una manera de paschen dinámicamente las partes específicas fuera de ese mensaje de registro que debería ser único. Por lo que dice este, intento de eliminación de eliminación justa falló. Um, en entonces, Bueno, este es estándar en borrar falló. Pero entonces si miras en la actualización, es el mismo Burbage que literalmente acabo de copiar y pegar todos estos mensajes de las actualizaciones sobre chico. Póngalos ahí y reemplace la palabra, aunque con borrar on. Después más allá de eso, hice lo mismo en el controlador del autor. ¿ Dónde está el mismo verbo e ege? Entonces ya ves, sólo me estoy repitiendo. No. Entonces si tengo otro controlador va a ser el mismo verbo it y alguna vez lo volvería a vencer yo mismo. Por lo que te reto a crear otra obstrucción en el inicio de sesión reducido la repetición o la cantidad de datos estáticos que se está repitiendo a través de múltiples puntos. Cualquier hoyo. Sigamos buscando a través de nuestra eliminación. Por lo que borrar intento. Verificamos si el i d es un valor inválido el día. Si lo es, entonces decimos que falló y regresamos. Pero solicita si comprueba si existe, y si no existe, entonces registramos una advertencia para decir que sentimos recuperar ese registro en. Entonces pasamos a subirnos realmente. Copié y pegué de la um del autor, apenas actual esto rápidamente. Por lo que ves, he aquí, tus hazañas encontrarán el mundo que copié del autor borrar. Entonces si hablaste con el pensamiento manualmente, o lo copiaste y lo cambiaste, entonces eso es perfecto. No hay problema. Copiar y pegar es programadores, mejor amigo. Entonces el libro por el que telefoneé, d usando mi repositorio de libros. Entonces revisé. Si la operación de eliminación fue un éxito, si no lo fue, entonces devolví el 500 con la ubicación y el mensaje de registro encendido. Entonces si tienes este incendio, entonces dije: Bueno, el disco fue exitoso, borrado, borrado, y no devolví ningún contenido. Ahora creo que solo tengo un libro en la base de datos, pero aún así voy a seguir adelante, y voy a depurar más que solo probar este endpoint de eliminación. Entonces tengo hasta la cola desnuda a la derecha y cartero a la izquierda, y primero voy a crear un nuevo libro. Entonces solo voy a crear uno con el título. Mi segundo libro, se puede poner en cualquier cosa. También voy a cambiar el ISBN, así que probablemente quieras terminar por algún único Eso se está moviendo desde el lado de la base de datos, sin embargo. Dónde trabajar los escoceses tienen lo mismo. Hablo y escribo así y al hacer clic, manda crear un nuevo libro, está bien. Y podemos mirar en el fracaso del amor que vemos en cuatro libros Crear, Crear Intento en la Creación de Dios fue exitoso Y si miras la marca de tiempo, puedes ver que tardaron ambos siete segundos en hacer eso bien, lo cual es amable largo. Pero esta es mi pequeña máquina. Se lo haría. Debe ser rápido en un servidor, cualquier hoyo. Ah, antes de seguir adelante, Esta cosa de marca de tiempo es realmente buena porque trabajé en un proyecto. Una vez en los clientes que estaba llamando a un servicio Web estaba cronometrando Haute on. Decían que todo el servicio era culpa. Pero cuando revisamos los registros. Pude ver la diferencia entre o la marca de tiempo apagada cuando se activó la llamada versus cuando devolvíamos datos en. Dijeron que se agotaría después de cinco segundos, y lo estábamos girando en milisegundos. Entonces habíamos demostrado demostrarles que el FBI era muy eficiente. Necesitaban revisar su sistema. Entonces este es otro, ya sabes, los registros a tiempo. tocones son muy, muy importantes. El de los desarrolladores. De todos modos, acabamos de crear otro libro sobre el I. D es tres. Entonces solo voy a usar este libro recién creado como cabra de escape. Voy a crear una nueva solicitud en diez centavos va a simplemente copiar el endpoint aquí. Andi, basado en, voy a decir el punto en con el valor tres en esto es una operación de eliminación. Por lo que hago click. Enviar Andi tengo en error. Está bien, Así que tengo otro incidente es destacar que fue una enfermera. Entonces después de cinco segundos de intentarlo, intentamos puntera la ventaja para grabar con 83 luego conseguimos algún elenco. Algunos errores de costo son así que veamos exactamente qué estaría causando ese error de costo de tipo. Por lo que quiero volver a mi delete endpoint y me encuentro por yo d on dije el libro de plomo. Ah, ¿Está ocurriendo lo tipográfico? Puede que tenga que poner puntos de freno. Voy a poner un punto de descanso. Yo he hecho partes fuera del cordón encendido. Entonces volvamos a Cartero en. Entonces voy a mandar otra vez. Es un desgaste o punto de ruptura on. Yo usaría si 11 a paso. Entonces entras, tratamos de encontrar el libro, y yo solo quiero validar que se trata de tres. Está bien, en ese entonces se mueve. Onda ahí está la excepción. Por lo que está fallando en recuperar porque está en que uno es un doble sobre uno es un decimal. Entonces creo que esto podría ser un problema. A lo mejor con mi clase de datos. Déjame echar un vistazo. Está bien. Entonces volví a mi base de datos y estoy revisando el diseño y veo aquí donde precio está fuera de tipo de datos dinero que, si no me equivoco, traduce directamente dedo del pie decimal en C agudo. Entonces, al crear mi clase de datos, había definido como doble y no decimal. Entonces hicieron ese cambio. Entonces creo que ahí es donde entra la época. Entonces mi clase de datos necesita ser se decimal y fuera de curso, si las clases de datos decimales que los detalles correspondientes también necesitan decir decimal para precio. Está bien, así que déjame intentar esto otra vez. Muy bien, Algunos de vuelta con ambos cartero Andi mi gira maderera. Entonces voy a dar click. Envía. A ver qué pasa en. Tenemos éxito. Está bien, así que vemos aquí, la elite se intentó en Fue exitoso. Muy bien, así que ese era el problema. Por lo que tienes que asegurarte de que tus lazos de datos para tus clases de datos sean los mejores C sharp. Um, tipos beta. Demasiado el correspondiente, um tipo de datos del servidor SQL. Correcto. ¿ Quieres dedo del pie? Estar muy, muy seguro que sea mucho. Entonces con esta operación, ¿ no hemos probado? Bueno, creamos, probamos y ninguna operación validada o eliminada para nuestros libros en dso. Eso es todo. 29. Revisar y añadir cambios a GitHub: Bienvenidos de nuevo, chicos. En este video, sólo vamos a, ya sabes, revisar lo que hemos hecho en esta sección fuera del curso el día check in nuestros cambios para levantarnos . Entonces lo que implementamos donde están las operaciones de multitudes, la multitud funciona en sobre un controlador de par para nuestros libros en. Tuvimos que tomar en alguna dependencia es inicializarlos en. Entonces estábamos seguros de ser muy estrictos con o documentación a medida que avanzábamos. También estandarizamos los mensajes de registro para que pudiéramos conocer la ubicación, es decir, el controlador en acción, que el registro se está activando a partir de ahora. Entonces usamos este estándar para aplicar a nuestro controlador de autores creados previamente en lo hicimos que a través y a través implementado son obtener libro o crear en actualización en delete. También tuvimos un poco de miss up con el delete donde el tipo de datos falta mucho, pero lo atrapamos, lo cortamos en el brote, lo corregimos en No, tenemos quejas completas. También miraba una nueva herramienta llamada cuento de cerveza, que nos baja dedo del pie mejor pista o ama. Y viene con pequeñas cosas como resaltar y seguido aquí, lo que le permitirá dedo del pie muestra automáticamente lo que son las últimas líneas de archivo más de registro ahora solo se va de este capítulo, vamos a revisar nuestros cambios para obtener top. Entonces solo voy a dirigir las soluciones Goto commit, luego escriba nuestro mensaje de commit. Está bien, así que ese es mi pequeño mensaje para mí mismo decir que implementé multitud para eso antes, no desde un libro ap I controlador en mensajes de registro estandarizados. Entonces solo voy a seguir adelante y comprometerme todo en el fregadero en empujar esos cambios para levantarme . Eso es todo. Por lo que la próxima vez vamos a empezar a buscar nuevos temas como seguridad y autenticación para más de una P I. 30. Tablas de la identidad de los Scaffold para la base de la base de la datos existente: Oigan, chicos, bienvenidos de nuevo a la Su misión es empezar a andamiar las tablas de identidad en nuestras abejas de datos . Ahora, déjame explicarte. Un poco de andamio refiere dedo del pie el proceso por el cual nos oxígeno. Todo está bien encendido. Entonces cuando dije tablas de identidad, lo que realmente quise decir, donde las tablas que puntan redes núcleo o dotnet, entidad, framework o núcleo identidad allí. Tantos. Entonces esta cosa. Pero vienen con algunas tablas predeterminadas construidas que admiten la autenticación de usuarios. Y ahí es cuando estábamos creando nuestro proyecto y seleccioné la plantilla de afeitar en, luego seleccioné que quería autenticación con conos individuales. Se incluyeron automáticamente las configuraciones y las capacidades para eso. Por lo que algunas de las configuraciones realmente se encontrarían en el inicio del archivo nazi s on defy. Atornillada. No lo hagas. Ya voy a ver aquí, eso es que tenemos el molesto para usar la autenticación y la autorización de uso en la sección de servicios . Se adelantó y agregó identidad predeterminada para alguna clase genérica llamada Identity User. Y entonces tenemos algunas opciones aquí donde podemos ver si queremos dedo del pie incluir ah requieren confirmado una característica de cono en nuestro proceso de registro. En realidad sólo voy a quitar esto. Entonces lo que esto hará es ese tipo de registro de dos pasos. Ya sabes, cuando alguien se registra y tiene que entrar en su correo para que algún hablador les confirme . No necesitamos que alguien quite esa opción en. Entonces lo que nos queda es solo una identidad predeterminada con esa clase genérica que representa la clase de usuario que nos da la identidad del núcleo así como qué base de datos son qué contexto DB . Debe dibujar en las tablas de identidad almacenadas. Ahora todo eso podría haberse agregado después del hecho, porque una vez más, las startups que archivo CS es más o menos lo mismo independientemente, fuera de la plantilla que elijas, es solo que bien, elegimos un plantilla, consiguió algo de ello realmente hecho eliminado lo que no queríamos y estamos en el mismo lugar de todos modos. Entonces lo que vamos a hacer ahora es ah, rayado. Las tablas que se requieren para la identidad usuario toe tienen algún propósito. Nos vamos dedo del pie los degeneran en remolque. Nuestra base de datos que es teléfono en el contexto de la base de datos de la aplicación, la cual se configura usando la cadena de conexión predeterminada, cual sabemos está apuntando a la base de datos que hemos estado trabajando en un plan para conocer. Entonces sólo voy a salvar los inicios de la sangre. Archivo CS sobre eso. Quiero llamar su atención hacia la carpeta Datos carpeta Migraciones y luego este archivo con todos esos ceros. No, esto es lo que se llama un archivo de migración al marco en el que aquellos lo que llamamos migraciones donde mantiene apagaron cada cambio que se hace contra la base de datos en. Entonces rodará automáticamente esos cambios. Por lo que tiende a mantener, como, una historia de todos los cambios. Ahora eso suele ser más útil cuando se tiene ah corte primer acercamiento. En esta situación, no tenemos un primer acercamiento judicial. Construimos primero la base de datos. Por lo que nuestra base de datos existe sobre lo que queremos hacer es modificar la base de datos. No, um, no entrando en el sistema de base de datos y agregando tablas para usar para la autenticación sino usando a diferentes trabajos para modificar la base de datos existente. Entonces lo que estaremos haciendo es que estaremos buscando una consola de gestor de paquetes, así que si no sabes dónde está eso, puedes ir de pie. Creo que está en herramientas en nuevo get pack manager y ves a su gestor de paquetes? Cónsul, una vez que renuncies a eso Ah, consola. Al parecer aparecerá un símbolo del sistema pidiéndole algunos comandos. Ahora, lo que haremos es ejecutar un comando que diga la base de datos. Por lo que más o menos fuera de los medios de datos dirán, cuál es la más reciente , um, migración que no se ha efectuado el entonces 10 en Adelante y aplicarla. O más bien, la más reciente activó las migraciones, Pero en este caso tendrá una. Entonces si quieres aprender a desarrollar usando el primer enfoque de corte y migraciones, entonces puedes revisar mi curso completo sp dot net core 3.1 sobre desarrollo de marco de entidad en ese curso hace fin a fin, construyendo una base de datos tribunal primero sobre una solicitud para ir con ella. Cubrir en nuestro contexto. No, ya tenemos una base de datos, y realmente sólo queremos que las tablas de identidad entren en esa base de datos. Entonces ya tenemos nuestra alguna Algunos estoy de acuerdo, hijo. Andi, tengo arriba mi consola de monitor de paquetes, así que solo voy a escribir la base de datos de comando update dash y luego cuando presioné, enter va a construir nuestros proyectos que podrían tardar un rato. Entonces continuará, y luego sólo dirá que no sabe esto es una advertencia. Es sólo decirme que no tengo tipo ni mucho en tipo amargo para el precio de la columna en mi base de datos. Pero si ves amarillo, puedes leer la advertencia. Puede ser útil. Puede que no lo sea. Cualquier cosa fuera significa que estás preocupado. Esto no es nada fuera de gran preocupación. Si tú, sin embargo, ves rojos, entonces sabes que tenemos un error encendido. Es posible que desee simplemente validar su cadena de conexión y asegurarse de que no se modificó nada con respecto a los archivos de migración. En eso, tus mesas están en rematada y fuera de curso. Si te encuentras con dificultades, siempre puedes ponerte en contacto conmigo Ahora cuando voy a mi estudio de gestión y reviso mi base de datos. Si recuerdas, realmente sólo teníamos dos mesas con autores y libros. No, tenemos bastantes tablas más tienen roles .net donde Lo sentimos SP Net Rules and Rule claims y user user claims user user log on SB users on todo tipo de tablas que tipo de soporte esa funcionalidad identitaria que viene construida en tow punto net core. Entonces sólo voy a tomarme un tiempo. Busco en el ESPN ese usuario estable. Yo sólo voy a sacar el diseño, y estos son los puntos de datos predeterminados que vienen con él. Por lo que tenemos el i. D. Nombre de usuario normalizar. Utilice el nombre de correo electrónico y normalice el correo electrónico. Correo electrónico confirmado. Eso es un poco decir sí o no en la opción donde, dijimos requieren confirmación. Date de alta que había quitado. Lo que eso hubiera hecho fue mirar este bit. Entonces si este bit decía que no, entonces una persona no sería capaz de iniciar sesión. Pero como es desde los discapacitados que realmente no importa, ¿ verdad? Entonces lo que habría pasado es que al hacer clic en el enlace para confirmarlo, habría cambiado. Este dedo gordo del pie. Correo electrónico confirmado, es sí, y entonces usted sería capaz de iniciar sesión para que todas esas pequeñas características se construyan bien , usted no ha sido bloqueado 02 puede habilitar la autenticación de dos factores. Maravillosas, maravillosas características antiguas fuera de la caja. Eso es, sin embargo, concluye nuestra misión para hoy. En el siguiente video, vamos a ver cómo configurar algunos usuarios por defecto y reglas por defecto en nuestra aplicación 31. Usuarios y rollos de prueba de semena y de la: Oigan, chicos, bienvenidos de nuevo. Simplemente cosas dobladas nuestras tablas de identidad saben lo que vamos a hacer es sembrar algunos usuarios y reglas. Entonces cuando hablamos de sembrar se trata solo de insertar algunas muestras en la base de datos para que, ya sabes, no tengamos que pasar por el dinero o procesar fuera haciéndolas. Por lo que sólo queremos algunos usuarios, porque cuando estamos configurando nuestra autenticación de usuarios, necesitamos saber por qué ya tenemos usuarios ahí para que podamos proceder. Por lo que quiero empezar creando un archivo llamado Seed Data, y sólo va a tener dos funciones para nosotros. Entonces solo voy a poner eso dentro de mi carpeta de datos. Es decir, podríamos poner quieto el tiempo de regla solo ponerlo en la carpeta de datos. Entonces solo hago clic derecho goto Iría a clase en, luego lo estoy llamando semilla. Está encendido, entonces esto va a ser una clase estática pública de estática, significa que no tengo que crear una instancia fuera de ella cada vez. Yo sólo puedo cerebral que sólo puedo llamar a las funciones que hay ahí dentro a voluntad. Está bien, alguien dedo del pie tiene dos funciones voy a tener estática privada Evitar en esta va a ser usuarios semilla, y yo solo te voy a dar las conchas vacías primero. Y luego me fui dedo del pie tiene sobre Madre uno que ve reglas de semillas. Simplemente reutilizo eso. Muy bien reglas de semillas. Ningún usuario de CD va a tomar un parámetro encendido. Este parámetro va a ser administrador de usuarios. Está bien, así que usa su manager es una clase construida que nos da funcionalidad dedo del pie literalmente administrar. Sus miedos son para los usuarios. Ya sabes, podemos acceder a ciertas cosas ciertas funciones construidas, y veremos a medida que avanzamos. Por lo tanto, administrador de usuarios en las clases de identidad predeterminadas Usuario de identidad. No, la cosa es que puedes tener más de una clases de identidad. Um, esto es que no quiero adentrarme demasiado en la identidad. Y la diferencia aún no es al menos. Pero si quieres conseguir tu abrigo, mi otro curso completo SB dot net core 3.1. Desarrollo en DIT te explicará todo eso. Entonces estamos usando la identidad predeterminada en ir a llamar a este parámetro user manager on entonces para las reglas, formularios y estoy usando Roll Manager. Entonces este es el rol gemelo. Por lo que el usuario manager on, estamos usando la identidad predeterminada, que es la identidad rol padres. Y voy a llamar a este gestor de un rollo para abreviar. No. Ya que estoy a punto de empezar a sentarme fuera de las reglas, se me ocurrió que no veía una configuración para las reglas de adentro apagado o inicié. Déjame volver a ponerme de nuevo. Mira. Mi sospecha es correcta. Entonces lo que pasa es que cuando se agrega la identidad por defecto, también se puede agregar una rosa. Yo sólo voy a traer la línea ahí. Por lo que agregamos la identidad por defecto que respiro la línea que quiero decir puntos, reglas de anuncios. Está bien. Y luego le digo que quiero los valores por defecto, que es regla de identidad. Muy bien, entonces. Tobillos abiertos. Breece. Bien. Entonces aquí mismo decían que queremos usar la identidad predeterminada, y queremos usar roles en nuestra aplicación, y todo eso debe almacenarse en concurso de belleza de aplicaciones. Muy bien, así que eso fue sólo un poco de configuración faltante que asegurarnos de que está ahí antes de proceder . Entonces ahora creamos otra función, y voy a llamarla semillas a alguien para ver desde desórdenes públicos a gran vacío estático público encendido, luego semillas. Entonces semilla va a tomar dos parámetros los cuales son más o menos idénticos a los que acabamos de configurar. Por lo que tengo un permiso. Er llamado User manager parámetro Onda Para el gestor de reglas sobre todo esto te tendrá suficiente sentido cuando veas esa toma llena de canción llamada. Correcto. Entonces eso es Bueno, ese es nuestro esqueleto Gaeta semilla, al menos. Entonces después de que funcionas de un público a privado sobre lo que vamos a hacer dentro del público , uno se le acaba de llamar los dos privados. Entonces voy a empezar por sembrar las reglas sobre que estoy pasando a esa. El rol manager que lo dio a través con una llamada telefónica encendida. Después fui a sembrar a los usuarios. Está bien en este se toma. El administrador de usuarios. Muy bien, entonces cuando llamemos a ver data seed, llamará a los usuarios de Ciro y semilla. Entonces, empecemos con las reglas. Entonces lo que queremos hacer es comprobar si existe un rol ya encendido. Si no lo hace, entonces vamos adelante y creamos dicho rollo. No, esta es afirmación nos va a impedir que creemos están bien cada vez que se inicia la aplicación porque no se quiere crear más de un incienso de una regla en particular, ¿ verdad? Entonces lo que voy a hacer es en esta declaración diciendo si y luego aquí es donde vemos el polar fuera de estos objetos manager sobre qué decir. Si el administrador de reglas puntea, entonces puedo decir rugido existe un fregadero. ¿ Verdad? Pero entonces es que es, um, um, esto es un fregadero, ¿ verdad? Por lo que tenemos dos opciones que o bien puedo ver continuar y comprobar en una pungency administradores la regla que queremos comprobar. En eso podría decir Dr Results. Correcto. Entonces lo que pasa es que si estás llamando y persiguiendo función encendida, ¿no tienes la distancia para que te digan siempre que resulta? No. Ya que tengo la opción de hacer que sea un pensamiento lo voy a escribir, y luego voy a intentar volver atrás y luego convertir todas estas funciones a cualquier cosa que sea un ejercicio genial, ¿ verdad? Alguien que lo escriba de una manera no novatada primero, ¿ verdad? Entonces digo que si el gestor de reglas comprueba la existencia fuera del rol de administrador en él no existe, entonces quiero declarar de nuestro rol es igual a nuevo rol de identidad Justo en entonces, dentro de esta regla, yo realmente sólo quiero decir que el nombre es igual a administrador. O así solo estoy inicializando o creando en objeto para ese es nuestro papel en. Entonces voy a decir, um, um, resultados de barras. Y luego aquí hay otra situación. Sepa dónde me veo obligado a usar una variable porque roll manager no crea un fregadero para que así cómo hacer crear un fregadero y luego estoy con el rol universitario. Pero entonces tengo que decir que resultados con el fin de salirse con la suya y luego real eventualmente Eso resultados no hace mucho bien, porque no lo estoy usando en ninguna parte. No. Antes de seguir adelante, voy a convertir esta flexibilización así que va dedo del pie tomar bastante sobre factor, porque, recuerden,no puedo estar llamando a una porque, recuerden, recuerden, función de cantar desde una función de flexión desconocida. Entonces si cambio éste a usted piensa que muchos cambios mi aguantado en aparecen. Pero, oye, para eso estamos aquí, verdad? Entonces hagámoslo rápidamente. Entonces para cumplir, evitar, um, función, crees que tienes que convertirlo en una tarea, ¿ verdad? Y luego, por supuesto que lo tienes. Piensa que es público enfrentando tarea estática. Um, ¿qué pasa con el nombre de la función está encendido entonces? Estás viendo aquí Que dice que tienes una tarea, pero todo lo demás no es alguien sincrónico para quitar los resultados del médico. Y luego voy a ver si no lo lejos. Está bien. ve bien. En lo que va de momento. Entonces si no esperar porque recuerden, esto es cualquier cosa. Entonces eso significa que puedo hacer lo mismo. No lo hagas aquí, En lugar de ver vier resultado, solo puedo decir lejos en luego quitarme los puntos. Resultados. Está bien, así que eso se ve un poco más limpio. Obits más. Está en kernels en su totalidad. Enseguida, entonces. Fuera de curso. Hizo el teléfono. Sean llamó reglas de secede. Necesitamos una forma de hacerlo aquí. ¿ Cuándo? Si estamos esperando aquí arriba, eso significa que necesito cambiar esto en una tarea o así a distancia. Lee se hunde. Muy bien, así que acabamos de convertir una función asincrónica monja en una asíncrona encendida, así que acabo de traer la línea para que no se apague de pantalla aquí, ¿ verdad? Entonces, no, todo aquí es asíncrono. Simplemente lo haré con esto También, dejo la estática, la estática no va. Acabo de poner en la palabra clave un fregadero y cambio vacío a tarea. Está bien. Y luego fuera de curso. Si es una tarea, entonces espero los resultados fuera del teléfono. ¿ Sean Car? No. Um, antes de seguir adelante con usuarios semilla, voy a crear dos reglas aquí, así que tengo un rol de administrador. Pero entonces esta es una librería. Por lo que es una librería en línea. Tenemos administradores que deberían poder entrar y hacer yo operaciones actuales en los libros y autores en mayo sean clientes que podrían iniciar sesión y probablemente,ya sabes, ya sabes, por un argumento de libro fuera. ¿ Ver? Entonces quiero otro que diga dueño de costo. Muy bien, entonces este papel existe. Un fregadero es. Están diciendo, si este papel en él no existe, son más bien este cheque usando. Si este nombre de rol no existe, entonces, um, crea un rol de identidad. Andi creará un objeto y luego creará el registro en el detalle. Abejas. Está bien, Así que no. Cuando retroceder rollos, intentará crear estos dos roles en el on cada vez que se ejecute. Pero claro, si ya está ahí, no va a hacer nada bien, que es exactamente lo que queremos. Entonces lo hemos hecho. Se levantó la semilla. Entonces vamos a centrarnos en el no Noto del usuario crear los usuarios. Voy a empezar con unas declaraciones si similares cuando vamos a decir si user manager Entonces eso no es, vamos a ver a algunos de los poetas del usuario manager dot Obtener usuarios. Bueno, no necesito a los usuarios en fila. Puedo ir a buscar por nombre, ¿verdad? Entonces lo que no quiero hacer para poder encontrar mi correo electrónico. Yo confinado por idee confinado por iniciar sesión puedo encontrar por nombre todo bien, y todos fuera de ellos son algo asíncrono, si no lejos encontrar por nombre usuario dinero no encontró por nombre un fregadero en. Digamos que tengo ah, usuario. Um entonces nombre aquí sería el nombre de usuario para que podamos ir a buscar mi nombre o podemos ir a encontrar por email Remedios email Así que quiero decir, si no, úsalo en fusión que encontrar por correo electrónico y voy a tener un valor por defecto add mean at Eso es un librería. No viene Esa es nuestra dirección de correo electrónico predeterminada, ¿verdad? Oh, lo siento, me dejé llevar. Entonces esto no es comprobar si existe. Esto está tratando de encontrar a alguien tan un objeto. Por lo que está esperando devolver algo. Entonces lo que quiero hacer es comprobar si no es mi espalda. Entonces no es un no no es un matón. Y decir si no se llama está viendo espera los resultados de la función. Andi, es o encuentra una llanta no y si la encuentra, entonces no será no. Entonces si es no, entonces quieres crear un usuario en. Después fui a crear un usuario off type identity user. Dado que ese es nuestro usuario por defecto en el que estamos usando, entonces necesitamos darle a ese usuario y nombre de usuario Andi en e meal. Como mínimo, necesitamos a estos Sanderson para llamar a los usándolo admin. Voy a enviar el correo electrónico para que sea el mismo correo que acabo de comprobar. Entonces si sí encontrara por nombre podría haberme dicho a mí, y si sí encontrara por EMI nos eligió, es así que hay tantas maneras de hacer esto que no hay derecho o solo estoy trayendo nuestro propio El mundo asegura que hay muchas posibilidades, ¿ verdad? Por lo que solo estoy viendo al usuario de Vier crear este objeto de usuario que está encendido. Entonces vamos a decir lejos su gestor de usuarios muelles crea aquí cantar Y luego quiero crear este usuario con la contraseña, ¿ verdad? Entonces si nos fijamos en esta función, las definiciones de función son los señores superiores. Ves que tienes la identidad, usa sus objetos y también puedes pasar una contraseña de cadena. Entonces la contraseña es un poco estricta Alguien solo ap en ciencia S s W O R D que quieres para que pueda cambiar la política de pastor si quisieras ser más simple, pero voy a dejarla porque eso parece una política bonita, decente donde tienes que tienen un símbolo. Tengo que tener un número en esa letra mayúscula sobre ella debe cumplir con una vida mínima. Muy bien, así que ese es un dedo del pie camino agradable y seguro. Hacer cumplir la seguridad en sus usuarios. No, voy a asignar. Entonces esto va a devolver un valor, en realidad. Correcto. Entonces lo que voy a hacer para salvar nuestros resultados es igual de dedo del pie. Yo espero, ¿ Esa llamada telefónica? No. Cuando obtenga el resultado, voy a ver si los resultados se atracaron. Entonces voy a conseguir una bandera para ver que fue exitoso son nueces. Entonces si fue exitoso de lo que quiero decir, administrador de usuarios, eso es raro rodar. Está bien, así que puedo saber haber creado un usuario agregar el rol del dedo del pie. Entonces quiero decir que quiero agregar usuario toe el rol en administrador. Entonces no, ¿ves por qué vemos las reglas antes de ceder usuarios? Porque para cuando llegues aquí, esa regla más existe para que este paso sea exitoso, y esto es una cosa. Entonces espera, entonces. Ahí vamos. Entonces, ¿acabamos de hacer eso con el usuario admin? No, Si yo quisiera un cliente de muestra, um, yo sólo voy de dedo a hacer lo mismo aquí. Simplemente voy a tomar esta declaración. Voy a decir cliente, eso puede ser gmail dot com. Está bien, vamos. Voy dedo del pie anuncio cliente uno algo que probablemente podrías haber escrito como un bonito antes de bucle. Y le pones eso a un capitán toscano. Ocho en un número cada vez. Ahora puedo advertirles que es muy estricto. Entonces si ves al cliente dos veces bien, quiero decir, es comprobar si los clientes para que no pueda tener el a los clientes con el mismo correo electrónico después de huelga. Entonces vemos al admin aquí. Entonces estoy creando cliente uno en gmail dot com. Utilice el nombre cliente uno en gmail dot com. Misma contraseña. Solía verlo impostor. No tengo ningún problema con eso. Pero entonces la regla será cliente porque esa es la otra regla con esa melena y forma de cliente, correcto, Así que tenemos nuestro primer cliente, y luego solo voy a ver otro. Y entonces este cliente va a ser cliente. Recorre esa herramienta del cliente en gmail dot com. El nombre de usuario es cliente, también. En el correo electrónico es el dedo del cliente en genia dot com. En. Una vez más, esta regla son los clientes. Todo el mundo va a tener el mismo transeúnte, por lo que será fácil para nosotros talar de pies como cualquiera en cualquier momento. Entonces una vez más. Estas son las muestras para que cuando vaya a desbaratar más la próxima vez, se crearán automáticamente. Está bien, así que no, hemos hecho el levantamiento pesado. Sólo tenemos que dejar que la startup nazi s sepa que necesita ejecutar esta aplicación son Lo sentimos esto anotó cuando inicia la aplicación. ¿ Verdad? Entonces en el conficker, mi pensamiento correcto, sólo voy a poner debajo de la política de coro. Ese es un buen lugar. Yo iba a poner en la formación. Llame dedo del pie. Ver datos punto semilla. Justo en. Creo que la semilla es un fregadero, Pero antes nos preguntamos si es un fregadero o no Bueno, un problema más grande. Necesitamos incluir usuario manager y road manager. Entonces, ¿qué pasa que pretendían pasar en estos objetos? Pero no van a entrar. No existen en el ámbito de configurar. Por lo que necesito agregarlos dedo del pie el alcance conficker son la lista de Permata para que vengan de. Entonces sólo voy a romper la línea para que no vaya a disparar a la derecha en. Entonces voy a ver administrador de usuarios sobre pasado en Identity user on. Estamos llamando a este gestor de usuarios el. Entonces vamos a hacer lo mismo con la regla de gerente. Yo no goberné sobre eso aquí o aan den. Este es monitor de reglas. Entonces no, tenemos nuestro uso. A manager y roll manager objetos entrando en entonces. Entonces ya ves, si pongo un peso, todo lo que va a estropear todo porque no puedo decir nuestro peso sin un fregadero, así que eso podría ser un problema, ¿ verdad? Entonces esa es una de esas cosas cuando se trata de programación asincrónica que, ya sabes, tenemos que tener cuidado. Entonces en lugar de poner su peso delante, sólo voy a ver un peso médico al final. Entonces eso es otro pequeño trabajador propiedad. Entonces donde hay testamento, hay una manera. Entonces ejecutemos y veamos si nuestros datos se ponen en nuestra base de datos. Está bien, así que ejecuté y estoy recibiendo este error, y creo que esto se debe a un error ortográfico. Si miras todo el administrador está escrito, eso está totalmente equivocado. Entonces déjame volver atrás y corregirlo, así que probablemente si eres mejor deletreador que yo. Yo, um no conseguiste esa época, así que déjame regresar y asegurarme de que Irak tuviera la calle Meanness o no como mínimo, sea lo que fuera. Entonces eso es lo siento. Eso es otra vez. Muy bien, así que esta vez llegué a cargar la documentación. Por lo que voy a volver a mi base de datos, mirar por dentro mi SP en su establo de usuarios, seleccionar 1000 y ahí tengo mis tres usuarios. Entonces así se verá ah registro de usuario. Y la identidad, ¿verdad? El concepto no es el otoño incriminatorio es como lo que montamos su ah guo i d. Valor. Tenemos el nombre de usuario en eso se normaliza el correo electrónico que se normaliza. Por lo que la normalización es como si solo capitalizaran todo y hicieran mucho una suciedad para que la carcasa sea irrelevante el día. Danos un hash de contraseña para que todas esas cosas estén integradas. No tienes que pasar tiempo hashing password um, toe puesto en el sistema. Lo hace por ti da tu sistema de seguridad y conferencias Onda. Sí desactivamos la necesidad de ciertas características, pero sí, eso es lo que eso significa. Nuestros usuarios fueron creados y si voy a pasar a reglas que se habrían tenido que crear reglas para que se crearan los usuarios. Y ahí tenemos a la Administradora Onda, nuestra conquista para pisotear las respectivas identificaciones. Por lo que acabamos de poner algunos usuarios de muestra y nos pusimos en nuestra aplicación. Andi, cuando regresemos, estaremos configurando el controlador de usuario que estará manejando la firma real y firmando cosas de autenticación para nosotros. 32. Controlador de usuarios de la configuración: Oigan, chicos, en esta lección estará configurando un controlador de usuario para manejar algunas operaciones de autenticación . Por lo que ya empecé a agregar el controlador. Fui a controladores, click derecho, click. Agregar fue a controlador y voy a estar andamios en controladores AP I vacíos. Acabo de hacer clic en ese click agregar darle un nombre, alguien para nombrar a su controlador de usuarios y luego seguir adelante y hacer clic de nuevo. Y ahora tenemos nuestro controlador de usuarios. Entonces, como es costumbre, lo que vamos a hacer está configurado o, ya sabes, la dependencia es primero en formal, Así que quiero dependencias. Quiero una dependencia para el administrador de fichajes en uno para el gestor de usuarios han incluido esos , y así es como se ven. Por lo que sólo puedes anotarlas en Guy. Basta con incluir la biblioteca faltante. Por lo que tenemos lectura privada en el lado y manager para usuario de identidad en administrador de usuarios para Usuario Identidad. También así los toff ellos funcionan muy bien juntos, Aziz, Aziz, mucho que puedan parecer similares, pero uno gestiona las operaciones de usuario un manejador de pie en caminos de lijado y cosas de autenticación . Muy bien, así que vamos a configurar nuestro constructor en bien pasado en nuestra dependencia es. Por lo que acabo de hacer esto en pasado un 1,000,000. Entonces fuera de curso hacemos nuestra inicialización. Xas de costumbre. Muy bien, así que tenemos un gestor de fichajes y un gestor de usuarios, como acabo de decir. Entonces, ¿cuáles son las cosas que queremos hacer en nuestro control de usuarios? Creo que lo de los medios sería manejador de dedos. Inicie sesión. Correcto. Entonces tenemos lo que llamamos datos sobre notaciones en DWI los habría estado mirando desde controladores anteriores. Entonces en esta situación, queremos un manejador autorizaciones, Significado, que pueda acceder a cierto en punto. Tenemos amargos y notaciones que tienen, como, un bajo anónimo donde podemos restringir por rol o simplemente podemos decir autorizado, lo que significa que alguien tiene que ser autorizado. Entonces si decimos permitir el anonimato, eso significa que no se necesita autorización aunque todo el control esté no autorizado. Entonces si dijera autorizado para todo el controlador, eso significa que cada endpoint dentro de aquí necesitaría autenticación. Ah, Bajo Anónimo anularía eso ahora mismo. No tengo ningún propósito para eso. Por lo que sólo voy a muy anónimo. Andi, voy a hacer en http post in point on this end point va a ser un público un colmillo fregadero . Asegúrate de que me derrama bien. Tarea desactivada. Yo resultados de acción en este. Este endpoint se va a iniciar sesión por tanto tiempo se va a llevar utilizo los objetos que voy a poner en mi cuerpo de. Entonces eso significa que tenemos que ir y crear un objeto que se encargue de esto. Entonces voy a decir usuario DT, o ese es el tipo de datos que necesitamos crear y sus detalles de usuario. Así que déjame simplemente ir y crear esa clase un mismo tanque, y simplemente completan esto y luego pasan a mi carpeta de detalles en anuncio rápido Andi, crear una nueva clase y estamos llegando el usuario E t. O crea en, luego usa una necesidad de o quieren mantenerlo sencillo. Realmente para no al menos realmente solo necesito una cadena nombre de usuario Onda Stream contraseña. Correcto. Eso es todo lo que realmente requiero. Um, lo podemos cargar un poco más tarde, pero bien. Conoce, solo para obtener la autenticación, solo queremos usar el nombre y la contraseña. Um, probablemente podemos quiero decir, podemos hacer una serie de cosas, pero vamos a mantenerlo simple. Renno. Perdón. Entonces vamos con el dedo del pie. Simplemente incluye la biblioteca faltante para que hayamos usado detalle en Estamos aceptando eso justo fuera de curso. Vamos a poner en nuestra documentación o comentarios sumarios para decir, um, um, puntos finales de carga del usuario. Es alguien de verdad. Documentación sabe que necesitan pasar en ese usuario mucho tiempo en endpoints saber lo que vamos a estar haciendo aquí es que vamos a estar viendo que queremos dar como resultado a alguien para guardar yo resultado es igual a on. Entonces voy a ver una manera es el resultado fuera del encargado de fichajes que va a probar un sesión de contraseña en una sincrónicamente, ¿ verdad? Entonces, no, puedo ver. Entonces si miras la documentación de esa función, ves que significa el objeto de usuario. Y también necesita contraseña en así sucesivamente tan bajo tengo dedo del pie Bueno, eso es uno fuera de los señores superiores. Otro overlord vería que sólo quiere cadena nombre de usuario y la contraseña y estos otros dos boletines. Esos tienen que estar ahí para que podamos pasar caídas y caídas. Pero el punto es que un overlord querría y ah, todo el objeto de usuario de identidad en la contraseña por el otro. uno le gustaría sólo usarlo y contraseña. Entonces como eso es todo lo que definimos en esto y realmente no quiero pasar por crear el top otoñal de usuario de identidad a esto y aquello, no voy a pasar por eso. Todo lo que voy a hacer es solo usar la sobrecarga más fácil. El día fui a decir, Bueno, Bueno, var nombre de usuario es igual a Así que me gusta dedo del pie sacar mis resultados de los objetos y ellos inter variables primero, en algún lugar para ver usar el nombre es igual a detalle. Utilice el nombre en una contraseña. Entonces recuerda control de duplica la línea por si acaso te estás preguntando cómo me hice eso tan rápido. Entonces nombre de usuario y contraseña. Y entonces eso es lo que voy a pasar al fichaje. Por lo que estoy pasando el nombre de usuario que pasa en el pasado. Comenzó la palabra, entonces yo sólo diré, Cae sobre cae satisfecho. Otro al de Julian, ¿verdad? Por lo que va a intentar la autenticación. Por lo que este maneja que entra en la base de datos, ve el nombre de usuario, adjunta al pastor que hace tanto en DSI es lo que necesita ver. No, tenemos que decir si los resultados son correctos vamos a ver. Entonces el señor Parando eso no es igual. Entonces no hay derechos, si resultado no es igual a ningún sentido. Él consiguió algo justo entonces para No, Lo que voy a hacer es sólo voy a ver Ok. Son Hagámoslo un poco interesante. Perdón. Retorno. De acuerdo, así que hagámoslo un poco más interesante. Donde voy a salvar a nuestro usuario es igual del dedo del pie. Tendemos que voy a usar el dedo del usuario manager, recuperar que, um, segundos de usuario que encuentran por nombre. Está bien. Entonces si estoy pidiendo que lo use, correcto, correcto, que vean dicen que está bien por su nombre. Él quiere usar los nombres en los que puedo encontrar mi nombre, obtiene al usuario por el nombre de usuario que se está usando en. Después fui a simplemente devolver usuario el objeto de usuario con la respuesta okey encendida. Entonces si eso no sucede o no entra en esa declaración si, sólo voy a devolver lo que llamamos, uh, uh, derecho no autorizado. autorizado significa que no eres una carga más allá de este punto. Veamos si hay una sobrecarga que incluya datos para que pueda pasar los objetos de cualquier Just say, use que GTO no está autorizado. Muy bien, Fuera de curso. Ya sabes que configuramos nuestra tala a medida que avanzamos. Entonces sobre retroceder y hacer todo eso en una fecha posterior, ¿ verdad? No, sólo que me preocupa más configurar el tala. Está bien, así que tomemos esto para dar una vuelta. Alguien para sólo ir a Oh, donde el modo anterior postean dinero en el mientras tanto. Muy bien, Así que solo estoy navegando por la documentación de mordido que vemos aquí, los usuarios de slash del FBI o el endpoint de registro de usuarios en él requiere un nombre de usuario en contraseña en que debería estar en su cuerpo de búsqueda. Entonces construyamos eso juntos. Entonces solo voy a traer una nueva pestaña en Lo genial de los carteros es que mantiene una historia. Entonces si estás registrado con tu ya sabes, tu cuenta personal, él mantiene un historial fuera de cada solicitud que has desde que pude desplazarse por días porque he hecho bastante fuera de las pruebas del FBI usando esta herramienta. Entonces vamos a meternos en remolque nuestras pruebas donde voy a publicar, entonces sólo voy a pedir prestada la dirección de una de mis anteriores porque estamos usando la misma dirección de puerto de host loca en. Entonces es un usuario de P I. No hay ningún valor después de la barra. Pero entonces el cuerpo necesita verse algo así. Entonces sólo voy a copiar la muestra en. Entonces vamos dedo del pie crudo, elegimos Jason basado en. Entonces intentémoslo. Entonces dije admin. Andi el transeúnte este p que sai s w o r d uno. Entonces veamos si éste funciona. Por lo que hago clic en enviar. Está bien, estamos en el negocio. Entonces vemos aquí que llegó la información de esta persona, pero ahora obviamente no necesariamente querría devolver toda la carga útil porque aquí estás exponiendo la contraseña callada tanto como no es muy descifrable, sigue siendo un contraseña hashes todavía información que no quieres ir. Está bien. Para que pudieras crear, como otro, um, bto. Al igual que un detalle de usuario vista donde realmente estás regresando. A lo mejor el usuario i d el nombre de usuario el correo electrónico en cualquier otro bit fuera de la información que usted sabe sería sensato para mostrar en una respuesta sobre un usuario. Está bien, para que eso funcione Andi. Si estás pensando que tal vez quieras incluir, como nombre, apellido y otros bits fuera de datos en la identidad, entonces eso es totalmente posible. Y una vez más, paso por eso en leve. Por supuesto, completo es velocidad, no Net 3.1 core entidad Andi, el desarrollo de marco. Por lo que puedes ir por ese curso para obtener una mejor comprensión de la identidad y cómo podemos ampliarnos. De cualquier manera, podemos validar aquí que el signo en prácticamente funciona. Entonces intentémoslo con el cliente uno. Entonces lo intentamos con, um, el administrador. Probemos con el cliente uno. Y luego vemos aquí lo mismo para el cliente uno. Entonces intentemos con algún valor aleatorio, algo que no es preciso. Entonces algunos mal usan el nombre y luego vemos que estamos obteniendo Estamos consiguiendo una herramienta para sin contenido. No esperaba conseguir eso. Entonces vamos a depurar un poco y a ver por qué tenemos eso. Por lo que sólo voy a poner mi punto de descanso aquí después de que hubiéramos conseguido los resultados, luego haz clic en Enviar en. Entonces golpea. Nuestros puntos de descanso son buenos. Entonces los resultados tienen campo. Muy bien, entonces. Yo sólo voy a dar un paso porque quiero ver exactamente por qué va a una herramienta para Pero entonces ah, OK, ya veo cuál es el problema. No. Entonces está bien, me da esta nieve. Entonces lo que pasó es que dije si el resultado no es igual no, lo cual no es exacto, debería estar revisando si los resultados exitosos no son así Déjame parar y luego arreglarlo. Entonces lo que pasó es que todavía se fue al bien, Pero entonces esto no fue Así que el bien regresó a las dos o cuatro sin contenido en lugar de un 200 con contenido, ¿ verdad? Entonces ese fue el comportamiento por defecto fuera del bien. Y esa es honestamente la primera vez que veo eso. Entonces hagámoslo juntos. Entonces en lugar de ver resultado, no saber, vamos a un resultado logrado. Entonces si resultado no X tuvo éxito entonces queremos volver bien en, entonces debería terminar ahí si no tuvo éxito. Entonces intentemos eso otra vez. Está bien, así que intentemos eso de nuevo en curso al hombre y yo hago clic. Envía. Ahí vamos. Entonces para uno sobre autorizar, eso es mejor. Por lo que no tuvo éxito. Así fue bajo por una autorizada no autorizada Lo sentimos en ello Envió de vuelta al usuario, um, información del intento. Entonces vemos aquí que alguna autenticación está funcionando, o al menos podemos autenticar y verificar que los usuarios existen en nuestros y puntos. No, Lo que voy a hacer es solo arreglar el inicio de sesión en este punto. Realmente no me gusta tener el punto de entrada sin tener registro. Ya sabes, estamos sentados como estándar, así que sólo voy a tomarme un tiempo. Andi, pide prestado algunos del cable de uno de los controladores anteriores. Está bien, así que configuré este país para que se parezca más a los otros que tenemos hasta ahora donde incluí el servicio más largo lo inicializé, chico, poner en las localizaciones se ponen en mis funciones para conseguir un control y nombre de la acción, así como flecha interna en. Después envolví toda la operación en un try catch. Por lo que acabo de poner intento, son propiedad. Todo lo que hicimos antes en la captura devolvería la llamada de función era de Internet en chico era tan poniendo el registro para decir que era ah, intento de registro de usuario en. Incluso podrías ponerlo. Bueno, ya tenemos sellos de tiempo en el registro, así que eso está bien. Entonces dijimos si fue exitoso de lo que decimos, use el nombre autenticado con éxito en si no fue exitoso que nombre de usuario, no autenticado. Entonces esa es la tala que pongo en remolque. Um, el controlador de usuarios. Podría tener una idea diferente. Eso está bien. Me encantaría escuchar cómo crees que podría realzar eso, pero eso es abismo, um, um, una línea de base para el lanzamiento del dedo del pie de Estados Unidos desde. Por lo que acabamos de terminar mirando cómo hacemos para autenticar usuarios en nuestra aplicación. En el siguiente, estaremos buscando configurar nuestros tokens Jason Webb también estarán buscando la autorización a nivel de controlador y acción. 33. Cómo configurar los Tokens web JSON y JWT) de autenticación de JWT): Oigan, chicos, bienvenidos de nuevo y esto. Escucha, vamos a empezar a sentarnos o Jason Webb Wilkins Ahora Jason Webb Tokens han estado durante esa expresión mucho, así que déjame darte, Ah, instantánea de lo que son. Básicamente son una cadena que tiene información codificada sobre un usuario más o menos eso es todo en un natural sobre real. Eventualmente, se usa al enviar llamadas del FBI a su usadoa una empresa y época también que el recibir el servidor que está recibiendo el A P que llamo puede evaluarlo para ver si este token es válido. Si la información en esta charla y o esta cadena tiene información que pueda validar eso, esto va de una fuente legítima. Entonces todo el punto de los tokens Jason Webb ya que relaciona la autenticación del usuario es que cuando queremos asegurar un A p I basado en el usuario que lo está llamando, podemos usar tokens Jason Webb para decir que cuando haces un dedo del pie de llamada, ya sabes, autenticarte, te voy a dar una ficha. Y cada vez que hagas cualquier otra tarjeta o en algún lugar que necesites ser autenticada, solo puedes mostrarme este token encendido. Te voy a dar paso. Podemos establecer experiencias Shin fechas en estos tokens para que si he estado usando un token todo el día en el tiempo de caducidad se diga que tal vez un día son tal vez tres horas. Eso significa en la tercera hora o la 4ta 0 R un minuto después del tercero sobre Parece que me da esta ficha. Si intento volver a usar este token, no soy no autorizado, y necesito volver a autenticarme de dedo para obtener un nuevo tokens. Entonces ese es todo el punto fuera. Fichas Jason Webb. Por lo que una vez más, un usuario va a hacer hacer alguna operación que va a desencadenar sobre el FBI en. Esperamos ver que esta convocatoria a la A P A. Tiene un token. Si no lo hace, entonces le vamos a decir a esta persona que necesita el dedo del pie autenticarse. No están autorizados. Si nosotros sí autenticamos, les vamos a dar un token con una experiencia shin date on, entonces mientras estén usando este token, pueden usar nuestro punto a p i n. Por lo general, el cliente almacenará este token hasta que se lo digamos. Se expresa, y tratará de conseguir uno nuevo. Entonces eso es todo lo que O la relación funciona en ninguna parte. Construyendo el A P. Este es el back in on. Posteriormente, construiremos el dedo del pie de un cliente mucho lo que hemos puesto en nuestro FBI. Está bien, así que ya basta de charlar. Y en la teoría fuera, vamos a meternos en algunos fuera de lo práctico. Entonces en este mismo controlador de usuarios que acabamos de construir, voy a poner en otra función privada. Entonces voy a decir privado y luego hacer que éste vea en ello va a ser una tarea que nos va a devolver string on. Entonces quiero llamar a éste genera Jason del que estamos hablando. Entonces te voy a decir que se debe quitar un parámetro de tipo de identidad usuario. Está bien, en, entonces, Lo que voy a hacer es para que le devuelva una cadena, pero me voy a poner la función causa en algún lugar aparece así que acabo de leer el formulario alguna llamada mientras estoy en ello. Entonces después de telefonear al usuario, Así que conseguimos el objeto de usuario. Lo que voy a hacer aquí, tú guardas nuestro para que pueda cadena. Entonces esta disfunción está generando que Jason Webb Token y devolviendo esa cuerda, ¿ verdad? Alguien que diga token string es igual a esperar En esta llamada telefónica en estamos pasando esos derechos de objeto de usuario para que la información del usuario vaya a entrar. No, exprimamos esto generar. Jason, estamos hablando. Entonces hay algunas cosas que me voy a hacer aquí. Um, en algunas de estas cosas involucran configuraciones que no están aquí, así que solo quiero ver devolver una cadena en blanco para No, acabo de parar. Él es las ansiedades por la disfunción en. Entonces qué queremos hacer con nuestro Jason. De lo que hablar es queremos darle una clave, así que queremos darle algún valor que siempre se va a usar. Al igual que a lo que llamamos asaltos cuando estás generando una contraseña. Por lo que en la configuración de la aplicación, no Jason debajo solo los anfitriones entienden presionar coma. Entonces voy a crear una nueva sección de conflictos. Voy a llamarlo G w t. Está bien. Y luego digo colon y luego abro un nuevo par de tirantes rizados. Entonces tenemos. Entonces ves que esto Bueno, esto es un expediente de Jason Así que si llevamos escribiendo a Jason o buscando y Jason por un tiempo, No. Entonces es el mismo tipo de formatos. Sochi Colon sobre el valor en. Entonces tenemos otra a la que vamos a llamar Emisor sobre un cool sobre Andi valor. ¿ Verdad? Por lo que incluiré documentación sobre todos estos requisitos para JWT. Um, lo que Jason Webb tokens a configurar en punto net core. Algunas de estas cosas tienes que leer y entender, y tal vez sepas, memorizar top, pero al menos tienes alguna orientación. Está bien, entonces para la clave, voy a usar ah, cuerdas estáticas. También voy a incluir esta cadena estática en es solo ah generado. ¿ Me devaluo? Um, Entonces la cosa es que no quieres usar una llave. Eso es para Schardt. Creo que cuando usas una llave que es para Schardt, te dará al aire diciendo que la llave no es lo suficientemente segura, por así decirlo. Entonces ve. Es un tipo de valor perfecto para usar porque uno no es algo que alguien pueda simplemente mirar a tu cancha y memorizar la llave en. Tampoco es algo que puedas memorizar, Pero lo es,Ya sabes,es Ya sabes, lo suficientemente único, y es lo suficientemente largo como para cumplir con los requisitos de seguridad, así que tendría cara que se incluye. Se con El recurso es para este video. Digamos que lo puede reutilizar. O simplemente puedo encontrar a alguien incluso probablemente pueda entrar a la base de datos y copiar uno de esos ID de usuario y usar su Eso está bien. Y luego, para emisor, solo escribiré test dot com. Entonces para no, como más de solo desarrollo podemos usar para detener la calma cuando nos desplieguemos probablemente querrá cambiar eso como un dominio más sensato, ¿ verdad? Entonces, ¿éste es quien está emitiendo eso? JWT? Más o menos. Toda esa información se utiliza al generar esta charla y cadena. No. Ahora ya terminamos con la configuración de arriba que Jason necesitamos g o en conseguir una biblioteca. Alguien va directamente a lograr que se pongan los paquetes, luego debajo de Bro sólo iban a buscar cerveza JWT. Entonces, cuando hacemos eso, deberíamos ver que Microsoft DOT está siendo una autenticación central. Cerveza JWT. Está bien, así que podemos seguir adelante con eso y una vez que tengas que incluir, bueno lo probé con el prelanzamiento incluir que realmente no funcioné para mí. Um, es hombres nuestro para tu basado en la versión off dot net core causa creo que eso subió por algunos incrementos. Por lo que podemos antic incluir pre lanzamiento y simplemente obtener la versión estable. Está bien, así que vamos a conseguir ese establo. Entonces sólo estoy en tictac. Incluir preestreno. Y estoy consiguiendo esta versión estable en la estoy incluyéndola en mi proyecto, aceptando cualquier cosa. Y luego una vez que termine de descargar, tenemos que dirigirnos a nuestra puesta en marcha, no al archivo CS en. Empezar a configurar algunas configuraciones. Eso start off dot CS on. Pasamos a nuestra sección de servicios conficker en luego justo encima de la configuración ginebra slugger Presentación con inicio de escritura servicios punto Agregar autenticación. Perdón. Eso es una Autenticación de coma. Andi dentro del padre esta temporada. ¿ Qué decir? JWT Beerer predeterminados, derecho. Autenticación acoplada. Skeel, ve a la siguiente línea, luego voy a decir punto impar cerveza jwt y luego nos vamos de dedo fresco hacia fuera algunas opciones, ¿ entiendes? Para ver o en dinar corderito, la expresión buscando flecha y luego a tirantes rizados y un semi colon. Entonces solo estoy cerrando eso. Muy bien, De vez en cuando quiero romper la línea aquí. Y iban a empezar a escribir en algunas opciones, alguien que decir o no. Los parámetros de validación de tokens son y sabemos que vamos a estar viendo, um, definiendo algunos parámetros por los que obviamente vamos a validar lo que sea que se esté hablando, va a ser igual a nuevo toe nuevo parámetros de validación de tokens. Y estamos inicializando unos nuevos objetos. Y creo que esto es decir que necesito incluir algo. Por lo que lo incluí en. Déjenme sólo poner un cínico y al final, fuera de ese aparato. Muy bien, Así que primera opción es validar emisor en que uno es cierto. ¿ Quieres asegurarte de que se viole al emisor? Siguiente es validar audiencia, y eso también es cierto. Entonces validamos la vida, así que queremos asegurarnos de que sea, ya sabes, válido para el periodo por el que dijimos que se debe votar. Queremos validar el tema están firmando clave. Entonces llegamos al punto donde decimos: Bien, ¿ quién es el emisor válido? Entonces voy a decir que un emisor violento es Quien sea que yo diga que es de acuerdo a mi, um, configuración y algo molesto. Consigue la configuración para JWT con el emisor de valor, nuestra oficina de valor en la que estás. Recuerda que dijimos este año para estar de prueba calmada, ¿no? Entonces quiero decir, a estas alturas, es bastante inconsecuente. Cuando te hagas público, sin embargo, jugará un papel más grande. Y entonces el siguiente es público válido y ese es también el valor fuera del emisor. Tampoco la última línea es el tema o la clave de firma. Está bien, y entonces ese no va a decir cuál era la clave. Y lo quiero en la corte. Entonces creo que necesito incluir algo extraño cordón aquí. Entonces está diciendo que la clave de firma será, um, um, clave de seguridad simétrica, a menudo en versión de ID con cable fuera del valor que pusimos la clave. Entonces recuerda que cuanto más larga sea la clave, mejor. Seguro que hay un límite de longitud, pero estoy a favor de un elogio que use un buen valor ahí mismo. Está bien, así que eso resume O r con figuración para nuestro Estamos hablando al menos aquí mismo. Sé que si me perdí algo, definitivamente vendrás más adelante. Entonces, procedamos con esto. Andi, puedes, ya sabes, tomarte un tiempo. Míralo. Um, Andi, una vez más, la lectura posterior Bueno, amable guíanos a lo que son cada una de estas configuraciones. Las opciones son cuáles en realidad podrías vivir sin. ¿ Sabes por qué son necesarias? No. Pasando adelante. Vamos a volver con nuestros usuarios. Controlador Goto nuestra función donde generamos estas cadenas de token on. Entonces mi primera línea va a decir, Bueno, creo que necesito incluir algunos conflictos, así que necesito inyectar dependencia para el archivo de configuración. Entonces sólo voy a ver privada yo con figuración fuera de curso. Se debe leer sólo y luego después incluir algo aquí. Está bien, bueno, bueno, creo que acabo de incluir a los equivocados a los conferenciantes equivocados. Déjame deshacer, y luego déjame intentarlo de nuevo. Entonces no es la configuración superior otoñal lo que queremos. El éste, la configuración de Microsoft Extension. Ahí vamos. Entonces solo voy a enchufarlo como dependencia e inicializarlo en DSO No, tenemos acceso a los feeds de Khan. Por lo que alrededor de dos o función del dedo del pie generar el Jason Key. Entonces voy a empezar con una variable llamada clave de seguridad encendido entonces esto va a ser igual a una nueva clave de seguridad simétrica. Ya ves, si pienso después de tipo de sapos en, entonces creo que tengo que incluir algo. Entonces Elton entra, entonces. Simplemente incluyo esa biblioteca en consecuencia. Por lo que nuevo es nuevo clave de seguridad simétrica on. Entonces esto en realidad se va a quedar igual a esta tierra en starups. Entonces en realidad sólo voy a copiar esto para no tener que escribirlo todas las cargas sobre ellos. No sólo se desgarraría. Está aquí. Entonces esa es nuestra nueva clave de seguridad. Um, y luego fuera de curso, esto no sería en lugar de la configuración de palabras duras. Tengo la dependencia para la configuración. Por lo que esto sería subrayar conflicto. Muy bien, en entonces necesito incluir los desaparecidos antes de codificar. Está bien, eso es todo. Por lo que la clave de seguridad simétrica de simetría hace que tengamos nuestras credenciales, y eso es igual de dedo nuevo firmando, firmando credenciales. Está bien, vamos, entonces, esto va a tener la clave de seguridad en la que acabamos de crear. Entonces voy a decir que estamos usando una seguridad Calgary ellos o fuera de todos los algoritmos de seguridad que estoy usando el cada tiro simulado. 256 Muy bien, entonces estamos viendo que estamos generando la clave de seguridad usando esa clave en. Entonces queremos las credenciales del dedo del pie. Ten algo de Hush, cierto. Entonces estamos silenciando eso ahí mismo. A continuación, me voy dedo del pie a hacer lo que llamamos cremas. Por lo que habrías visto una mesa llamada Limpia. Y el reclamo es realmente simple. Reclamar es decir que ¿cuál es tu información? ¿ Quién dices ser? ¿ Explicó que en las primeras partes sobre lo que el JWT tiene en sus datos. Entonces podemos tener la oportunidad de realmente crear las cremas que queremos incluir en este arroyo. Entonces voy a crear una lista Quiero decir Vier reclamos es igual dedo del pie una nueva lista fuera de tipo, limpio causa reclamo es ah, un tipo de datos construido natural. Muy bien, Andi sí necesita incluir algún sistema que seguridad que reclama biblioteca acaba de poner un cínico y ahí en eso, voy a decir que me des una bomba nuclear. Muy bien, entonces. Voy a ver a J w t registrado O. C registrar nombres de reclamos. Por lo que la biblioteca Gentleman T nos da a todos los reclamos potenciales que podemos hacer dentro de una plática. Muy bien, Así que cuando tengamos el registro, los nombres de reclamo, puedo decir dot y luego los verás luciendo poco oscuros, pero y algo de lo tiene sentido en contra de la familia Nombre dado nombre. Los estudios de género son todos los bits de información que puedes incluir en el token, para que cuando alguien obtenga este token después de que el usuario haya autenticado esa charla y les cuente toda esta información. Entonces, en realidad es una manera agradable, más segura y callada de proporcionar información de vuelta a los reclamos, ¿ verdad? Entonces el primero cuando quiero es sub Andi. Voy a decir que quiero que SoBe tenga el valor fuera del sermón de usuario, pero pondría una identidad usuario usuario dot email. Por lo que se va dedo del pie sostiene el correo electrónico del usuario. Muy bien, a continuación. Pero eso es sólo un nuevo reclamos. En lugar de volver a escribir mucho el dedo del pie, va a duplicar esa línea. Entonces el siguiente sería g a t. I. Muy bien pues, para éste, les voy a dar. Ah, tipo de valores estáticos, pero bien generados. Un nuevo bien en. Entonces lo voy a poner a cadena para apaciguar todos los tipos de datos requeridos. S un nuclear debe tener el tipo sobre el valor, derecho sobre el valor debe ser una cadena. Entonces tenemos que ponernos lo bueno. Entonces dale la historia. Siguiente voy a tener una madre reclama. Entonces este va a ser nuevo equipo. Y luego la razón escribiendo esto con el fin de no duplicar que éste va a ser un tipo de reclamo. Muy bien, así que esos son los tipos menos limpios. Y a esto se le va a llamar fuego de identidad. Entonces creo que necesito incluir algo aquí. Entonces solo salgo y entro a Onda. Eso somos todos nosotros. Es tipos reclamados, no tipos de cremas, verdad. Etiqueta de reclamo La ortografía es importante, chicos. Muy bien, entonces y luego fui a ver a un usuario. Eso es yo d Muy bien, así que ese es el identificador para el usuario. Entonces después de eso, he acumulado todo fuera de mi lista, limpia, entonces también voy a conseguir las reglas, así que quiero las reglas que este usuario tiene tan virales. Entonces la cosa es que uso no puedo múltiples roles a pesar de que tenemos algunos usuarios y última instancia estaremos asignando a cada dedo del usuario solo un rollo las realidades que cada, um, um, sistema de autenticación basado en usuarios Um hola, Zito o debe diseñarse para facilitar más de una regla. Entonces solo voy a conseguir todas las reglas de todos modos, así que puedo decir que el administrador de usuarios no conseguir reglas se hunde. Entonces solo consigo las reglas asociadas a tu usuario. Está bien, así que tengo algunas reclamaciones encendidas entonces. Lo que quiero hacer es en el hecho de que el usuario es parte de esta regla y lo que sea, para que podamos ayudar con nuestra autorización. Muy bien, entonces voy a hacer esta línea fuera de la cancha, dónde y cuándo decir reclamos puntos. Necesito agregar las reglas a través de la lista. Off limpia con ese tipo de edición, hay después del trabajo. Un poco de magia, quiero decir agregar rango on. Entonces voy a ver reglas dot select. Está bien. Entonces lo genial del link es que en el flak y seleccionar de él en adelante, luego crear. Y sólo voy a decir nuestra Lambda ¿Qué? Estoy creando un nuevo objeto genérico off type cream o Bueno, supongo que no es genérico. Si está fuera de ese reclamo encendido, entonces voy a decir que estoy creando un nuevo reclamo para cada regla que va a salir de esto. Andi, quiero reclamo Puntos de identidad. Regla por defecto. Muy bien, así que el tipo de reclamo de regla por defecto. Ese es el tipo crema que quiero poner. Entonces el valor, por supuesto, va a ser nuestra no onda. Bueno, en realidad no son lo siento. Simplemente son así están pasando en el valor de nuestro Todo bien, así que en realidad era una calle. Está bien, entonces en realidad es una lista de ST Así que es cuando lleguemos, señor. Sí. Entonces, uh, eso habría sido conseguir objetos, pero en realidad sólo estamos consiguiendo los nombres de las reglas aquí, así que estoy obteniendo los nombres de las reglas, que es solo una lista fuera de cadenas en. Entonces solo digo que por cada cadena que regresa, estamos creando esa limpia. Muy bien, después Semi colon. No. Después de hacer todo fuera que finalmente construimos nuestro token un poco para salvar nuestra plática es la igualdad. Nueva puntera de seguridad JWT lata. Muy bien, entonces. Me estoy poniendo con fig on. Estamos buscando al emisor, alguien que diga J W t llame al emisor. Muy bien, Onda. Entonces si nos fijamos en los señores superiores para esta función, se necesitarán bastantes, um, parámetros. Entonces vamos a estar llenando de remolque con este, el cuarto parámetro, que va a tomar bastantes valores. Entonces lo primero es el emisor. Entonces necesitamos al público, que vamos a reutilizar emisor. Entonces necesitamos incluir el reclamo, así que sólo lo llenaremos a medida que avancemos. Entonces salí el emisor dos veces. Entonces, Emisor, entiendo la línea de freno. Emisor de coma el. Acabo de notar a ese votante, no a Vier. Perdón. Está bien, déjame sólo romper la línea para que todo esté claro y no se mezclará. ¿ Verdad? Corán. Entonces emisor, emisor. Y luego la lista fuera de los reclamos. Está bien, en ese entonces, por cada otro valor me fui dedo del pie tener bien, la fecha si no antes, voy a tener no. Entonces el siguiente parámetro será el yo creo que es el tiempo de caducidad alguien a decir caduca. Onda Colon Andi, voy a establecer la hora asiática de caducidad para que este token sea, Veamos, dos horas. Entonces quiero decir, es tan fuera de curso que quieres ser práctico con la caducidad porque si caduca cada dos horas, eso significa que este uso solo para autenticarse cada dos horas. Algunas personas se lo pusieron a un día. Seguro te das cuenta de que algunos sitios web mantendrán tu turno firmado para toda la eternidad y en algún lugar arena te gustaría tan pronto como cerrara Ambrose y realmente Broza e intentaste volver a subir la arena de nuevo adentro, correcto. Entonces supongo que tal vez están usando gentilidad y algún tiempo muy corto así que podemos decir sumar minutos y segundos. Um, con fines de prueba, solo voy a decir agregar minutos en una madera para decir cinco, pero es que va a caducar cinco minutos después de que se haya emitido, y lo estoy haciendo de esta manera para que podamos probarlo totalizado dentro del toda la vida fuera de una de estas lecciones, ¿verdad? Entonces lo siguiente que tengo es firmar credenciales en, recuerda que acabamos de crear credenciales. Entonces solo vamos a pasar el valor de credenciales ahí mismo como asignar credenciales en entonces eso completa nuestra charla y generación ante un continente. Ver aquí que tengo algo Oh, creo que puede haber incluido una biblioteca que no tenía que decir. Si ves líneas rojas como aquí tengo, entonces no necesito Microsoft. Esa identidad, ese es Jason. Qué fichas. Entonces eso es lo que no necesito, ¿verdad? Entonces una vez más, si estás consiguiendo las líneas rojas como yo para el General C E jwt Lo sentimos, nombres de reclamo registrados. Simplemente puede quitar eso usando el anuncio. Son los puntos modelo, Jason, con fichas, todo bien en eso debería arreglar ese error en. Entonces, después de haber construido nuestro token, entonces podemos devolver un valor más sensato en la forma off. Nuevo manejador de tokens de seguridad JWT encendido, luego puntos. Y luego se ve bien, Así que se puede. Entonces acabamos de pasar la charla. Muy bien, así que eso sólo va a devolver el stream el token como una cadena. Entonces una vez que hayamos obtenido esta cadena de token, la voy a incluir con la respuesta. Recuerda que estaban respondiendo con los quizá los objetos de usuario completos, que no voy a hacer eso bien? No. En cambio, ¿qué? Voy a hacer es sólo devolver los tokens. Yo sólo voy a ver un retorno. Andi, quiero darlo hecho. En realidad capaz de alguien de crear un genérico, um, objetos o token es la igualdad. Por lo que puede cadena. Está bien. Entonces eso significa que una vez que una persona se autentica, la respuesta estará bien, y recuperarán token. Colón tomó y cuerda en forma de Jason. Entonces mis clientes deberían consumir eso. Guárdelo en. Entonces para toda la vida fuera del token, retendrá la información de los usuarios. Entonces, solo probemos y veamos cómo se verá uno de esos tokens. Muy bien, Así que tengo cartero arriba con on off mis solicitudes anteriores en. Sabemos que eso se fue a caso limitará. Prueba admin on, luego envía y luego Voila. Entonces así es como se ve nuestro instrumento de charla. Muy bien, Entonces esta corriente de tokens una vez más encarna todas las cosas que habíamos metido. Ponemos algunas reclamaciones para el correo electrónico. El usuario i d genérico buen valor fueron puestos en. Si están en parte, nuestra regla no lo son o qué reglas están todas separadas. ¿ A quién está demandando? Quién es um, el usuario, todo tipo de cosas. El tiempo de caducidad. Por lo que en cinco minutos, expiraría. Entonces lo puse a cinco minutos. No vamos a probar esa expresión porque no la vas a ver, ¿ verdad? No. Pero lo que haremos en el siguiente video es que vamos a volver, empezaremos a sentar algunas autorizaciones en, vimos lo existente en puntos, y verá cómo funciona. 34. Controlador de la configuración y las autorizaciones de acción y la acción: ustedes chicos en este video, vamos a estar configurando autorizaciones en nuestros diferentes endpoints en nuestro controlador de autores el. Estaremos validando o conversando funcionalidad al mismo tiempo. Entonces lo que voy a hacer es que voy a escoger unos extremos que deberían tener autorización , entonces tal vez endurecer quieren algunos basados en las reglas en. Después perdí algunos para ser anónimo solo para poder ver la diferencia o el impacto que tendrá tener la charla de cerveza y cuerda en nuestras peticiones. Entonces lo que voy a hacer aquí, voy a decir que eso es para conseguir autores. Voy a dejar eso en paz. Algunos el tema de apoyo entrecerrado t get. Y también voy a simplemente muy anónimo. ¿ Todo bien? Eso significa que cualquiera debería poder hacer una petición sobre conseguir a los autores, sin embargo, con el fin de y creo que éste como un bajo anónimo. También Así que estas tienda son bajas anónimas. No obstante, para crear, voy a restringir Ah, me voy dedo del pie son mejores. Sí. Déjame. Está bien. Sí. Lo siento. Yo solo estoy haciendo esto cuando salgo. Entonces lo que no quiero hacer aquí es autorizar a alguien a que autorice crear el. Autor. Estoy tratando de ser lo más realista posible en. Entonces voy a decir que está bien, alguien que autorice este. Y quiero precisar las reglas. Por lo que no puedo decir autor como corsé abierto y cerrado en las únicas reglas que quiero para poder ver reglas es igual notarlo viendo reglas. Entonces tienes una cuerda, pero puedes venir por separado todas las reglas que están solas, ¿ verdad? Entonces si tienes tal vez, como, tenemos dos rollos de administradores personalizados y web. Entonces aquí estoy diciendo que la única regla autorizada para golpear este endpoint es un administrador sobre entonces lo que voy a hacer. Entonces eso son cuatro crear. Y entonces lo que voy a hacer es por la actualización. Voy dedo del pie autorizar ambos. Está bien. Entonces estoy viendo ya sea Allchin en entonces para borrar en esto. Esto va en contra de la norma. Yo estoy con amarillo. El único cliente que elimina a los autores es eso Eso es amable contra la norma, pero nos deja hacer justicia y ver cómo funciona para nosotros. Muy bien, así que entré en modo de depuración y tengo un cartero y luego vamos a probar también fuera de estos extremos. Entonces voy a probar con los consigue el primero llegar donde debería poder conseguir que todos los autores envíen la solicitud. Andi, tengo a todos los autores, así que en realidad creé otro en el pasado, pero sí, Así que conseguí a todos los autores. Tenemos dos autores y de la misma manera que no especificé ninguna autorización en la parte superior del get by i d. obtenemos el autor con el I D a No, especificé. Eso es y voy a volver atrás y asegurarme de que crear, déjame encontrar crear Así que crear requiere un administrador. Entonces veamos qué pasa cuando intento el crear. Entonces tengo un Bunton. Ese es mi autor que estoy tratando de crear y ven aquí estoy recibiendo un 401 on autorizado porque acabo de decir que alguien tiene que ser autorizado para poder pasar ese es punto ¿verdad? Entonces solo voy a volver a mi, um, um, autenticación y en lugar de autenticarme con el usuario y fui a probar cliente uno, así que no voy a ser admitido con uso cliente one send on. Entonces recuperé la derecha habladora. Entonces para usar esta charla y después tomar el valor y el valor es todo lo que está dentro de las comillas, no las comillas. Por lo que tengo hasta donde van las configuraciones, este token es válido por cinco minutos voy a volver a mi solicitud. El autor Derecho el. Entonces voy a incluir esto en los parámetros para mi solicitud. Por lo que voy a las autorizaciones. ¿ Verdad? Entonces tienes parte. Lo siento. No problemas sino autorizaciones, pesar de que agregarlo aquí terminará como primer ministro. Adulto. Pero aquí es más fácil, así que voy a autorización el. Entonces elijo token portador en luego el valor de Putin. Pueden ver aquí que Adebayor hablando ahí desde una de mis actividades anteriores y poniendo en este nuevo token encendido entonces puedo dar click enviar Entonces ¿qué pasa que incluye este token en la solicitud el notado? Esto no es ver cuatro o tres prohibidos. Entonces estamos para uno en autoría lo que significa que no estás autenticado. No puedes interactuar con versus cuatro o tres lo que realmente significa que, um , ya sabes, casi se usan indistintamente, pero cuatro o tres significa que podrías estar autenticado, pero no eres autorizado. ¿ Verdad? Entonces esa es la diferencia entre cuarta ronda por una. Por lo que ve la ficha al portador. Pero entonces la información limpia en el token al portador no le dijo que es un administrador, cual es correcto porque simplemente nos encantó como cliente. Entonces déjame intentarlo de nuevo con la admisión, y voy a conseguir ese valor. Entonces lo que voy a hacer es que voy a anotar esta charla en valor. Entonces la primera plática y que obtuve del cliente, acabo de tomar nota de ello porque recuerda, fue un tiempo asiático de caducidad de cinco minutos, ¿ verdad? Entonces lo voy a reutilizar en un cliente legítimo, um, operación. Y luego vemos si funciona, estoy seguro de que cinco minutos tendrían el amor extendido esa vez. De todos modos, se trata de un tokens admin. Déjame conseguir este talkin admin. Está bien, noto que aquí no hay información que diga si es un administrador hablando a nuestro cliente . Es sólo una ficha en este momento. Quiero incluir este con la solicitud el, luego haga clic en Enviar. Andi nos deja ver qué pasa al conseguir un límite para bidden. Vuelve atrás y ve algo. Ah, aquí es por qué los asuntos de ortografía se dejan abiertos. Tenía muchos heterosexuales o así dejarme salir del modo de depuración actual que se está derramando en la gira ministerial en Vamos a intentarlo de nuevo. Muy bien, entonces estamos de vuelta en modo de depuración y déjame intentarlo de nuevo. Andi, envío con el token encendido. Estamos recuperando cuatro o tres. Entonces creo que podría tener que cambiar alguna configuración con los reclamos. Um, así que cuando salgan del barco amarrado y luego solo para asegurarse de que la autorización funciona sin do es quitar la parte de reglas en, volver a depurar más que probar el mismo token solo con el autor s. así que cuando salgan del barco amarrado y luego solo para asegurarse de que la autorización funciona sin do es quitar la parte de reglas en, volver a depurar más que probar el mismo token solo con el autor s. eso significa que no importa con qué usuario como token esté presente, um, eso no ha caducado, debería funcionar. Y entonces eso confirmará si es, ah, ah, tema relacionado con reclamos. Entonces si lo intento de nuevo para crear este nuevo autor, ahí vamos. Por lo que funciona. Entonces es algo con los reclamos sobre las reglas. Está bien, entonces si tomo toda la autorización, está ahí. Decir que no se apague y luego tratar de llamar a eso en punto otra vez. Entonces conseguimos eso por uno no autorizado. Pero en el momento en que pongo el token al portador, es una plática válida. Funcionará. Entonces, solo volvamos. Fuera de depo Mood on review O R. Reclamaciones seis on in o usuarios controller. Muy bien, entonces lo que voy a hacer aquí es establecer puntos de tela en mi tierra 82 después de que me den las reglas solo para asegurarme de que las reglas estén regresando correctamente. Por lo que fui a ir a desacreditar más de dos intentos de inicio de sesión con Cartero para el administrador haga clic en enviar. Entonces dije los puntos de descanso y cuando golpea dicho puntos de ruptura, miramos y no vemos que Rose regrese. Entonces ese es el problema, ¿verdad? Entonces está Norrell volviendo por el usuario admin, y creo que sé por qué. Um así que si recuerdas cuando estábamos creando al usuario en el video anterior en administrador mal escrito o así lo que pasó es que no intentó volver a crear al usuario, y como resultado, no asoció al usuario con el regla, Así que voy a hacer eso manualmente. Andi. Simplemente entro a la base de datos para que pueda entrar en iniciar sesión en su SQL Server. Todavía tengo la mía de ejemplos anteriores en Aquí hay una tabla que dice reglas de usuario de SP Net , ¿ verdad? Entonces si voy a cualquier top 200 me permitirá simplemente entrar al usuario i d y al rol asociado I d . Así que si entro en reglas y me acabo de destrozar, vuelva a hacer clic en el top 200 y luego veo esa regla de administrador como un I d. Correcto. Entonces sólo copia que d en. Entonces lo pondré como regla, i d. Y luego quiero el rol de usuario para los usuarios. Entonces pienso en usuarios abiertos. En algún lugar está el usuario administrador. Yo decido esta copia que valor en ponerlo como el usuario me d presiono a bordo, propio en él se comprometerá con la base de datos. Entonces, no, tengo ID asociado mi usuario administrador con las reglas. Entonces eso es lo que estaba viendo que ya sabes, podría tener la idea de usuario en otro papel. Ideas de que el administrador podría estar a la vez arrepentido. Este usuario administrador podría ser tanto administrador como cliente si quisiera que se diseñara de esa manera. Cualquier hoyo, No, eso es Sabemos que ninguna regla está regresando y eso es parte de un problema. No estaba incluido en el reclamo, así que intentemos eso de nuevo. Entonces voy a usar el dedo del pie cartero, hacer otro inicio de sesión intentos para obtener un nuevo token. Y luego miré hacia atrás en las reglas y vemos No, que nuestro papel está regresando. Está bien, así que probablemente no tenías eso, er que yo estaba teniendo porque escribiste correctamente desde el principio. Entonces eso está bien. Sidras empujadas y valida que está funcionando. Entonces ahora estamos volviendo. El reclamo en este token parece mucho más grande. Esta cuerda se ve mucho más grande de lo que parecía antes. Por lo que el reclamo, el hablante lo siento, sus papeles no estaban siendo incluidos en la cadena de talkin. Entonces déjame volver a mi creación el Poner en Mi Nuevo Oso, una cuerda que es más grande. Por lo que siempre sabré que en algún lugar la información está en ella. Voy a cambiar la información del autor. Déjame probar Hilton Burton. Muy bien, vamos, entonces. Déjame mandar un poco Ver armas encendidas. Ahí vamos. Entonces vemos que la regla realmente jugó un papel enorme en saber si este usuario es o no autor como seguridad. Toda la acción, ¿verdad? Entonces cuando el rol no estaba en el en el token, el reclamo no pudo verificar. ¿ Verdad? Entonces, no, podemos ver que está funcionando. Bueno, los años probablemente ya estaban funcionando, así que sólo estoy poniéndome al día. Si el tuyo estaba trabajando antes de la mente, entonces estás bajo atracción. Enhorabuena. Entonces, no, podemos seguir adelante y probar con los otros endpoints y otros tokens. Entonces ese fue el Oh, ¿qué? De verdad no lo terminé. Entonces déjame. Me acabo de dar cuenta de que realmente no lo validé. Entonces déjenme volver a poner la parte que dice que las reglas igualan el dedo del pie administrador matrices Bill administrador apropiadamente on. Déjame intentarlo otra vez. Por lo que Noah Puente valida que está funcionando. Ahora, otro autor. Este va a ser mi combustible. Uh, Johnson. Está bien, vamos. Entonces hago clic. Envía Andi. Está funcionando. Está bien. Entonces no. Nuestro reclamo fuera de estar en los administradores incluidos en el token al portador. Por lo que cuando se golpea el autorizado autorizó sólo al administrador para que se las arregle. Entonces no, voy a probar uno. Entonces vemos que lo peor del administrador. Entonces estoy bastante seguro que va a funcionar con la actualización igual que voy a probar una con el administrador. Tránsito. Llevar a cabo esa eliminación cuando sólo los clientes son usuarios en el rol del cliente. Arlo para hacer eso. Entonces permítanme sólo validar eso también. Entonces déjame sólo encontrar el puesto en entonces. Voy a modificar y decir, Muy bien, Muy bien, solo modifico dedo del pie autor, tengo esta información sin duda. Basta con modificar un poco esta solicitud. Después puso en mi autor Azi mostró Bira platicando con los administradores. Token on, luego mandar en él me rechazó diciendo que estoy prohibido. Así que déjame iniciar sesión como cliente esta vez y simplemente recuperar un token de cliente. Muy bien, entonces. Déjame ponerme esta cuerda. Yo creo que estuvimos en deletes ¿no? Creo que no somos una palabra que se supone liderar, ¿verdad? Creo que me modificaron para poner pero en realidad debería estar borrando. Entonces déjame intentar borrar. A medida que los clientes están autorizados con mi Barrett tomó y puso en el token de cliente borrar también con el yo d a Todo bien, Fue entonces cuando hubiera sido cualquier cosa pero nosotros Puedes probarlo si quieres, pero estoy bastante seguro de que va para trabajar con cualquiera Use un token pero son así que déjame justo debajo esto primero, déjame intentarlo de nuevo con los tokens admin. Entonces esta es la cadena de tokens admin. Déjame mandar. Estoy prohibido por lo que el administrador no puede eliminar. Déjame intentarlo de nuevo con el token de cliente Onda Vemos dos o cuatro sin contenido porque la eliminación fue exitosa así y no lo vuelvo a conseguir, ellos consiguen su público permitiendo anónimo ningún autor con idee 23456 y siete Sin embargo están ahí en. Entonces así es como usas JWT talkin stir, Ya sabes, ver si guardas tu en puntos en asegúrate de que quien esté interactuando con ellos tenga la autoridad para hacerlo 35. Revisar y añadir cambios a GitHub: Oigan, chicos, bienvenidos de nuevo en este video, sólo vamos a estar revisando lo que hicimos en esta sección y revisando o cambios en para levantarnos. Entonces lo que hicimos fue implementar nuestra autenticación de tokens Jason Webb, y lo hicimos usando una combinación de identidad fuera del núcleo y algunas bibliotecas construidas desde el núcleo de red de puntos para la autenticación JWT. Por lo que hicimos algunos cambios en algunos archivos. Creamos un nuevo controlador llamado Users Controller con una acción de inicio de sesión. Agregado un poco de tala, um, dedo del pie, ya sabes, el amor de las acciones. ¿ Qué está pasando? Dondequiera fuera de curso, cada real, cada acción debe cumplir con un cierto estándar en. Por lo que nos aseguramos de que estuviera bien documentado. Estaba en su lugar la tala de Onda y manejo de aire. También creamos disfunción para generar el token Web, que sacó información de bastantes lugares, a saber, a saber, nuestro archivo de conflicto, que alberga AKI Onda. Generamos algunos reclamos y agregamos las reglas. Entonces los reclamos son correctos y discutiremos eso, ya sabes, los reclamos son básicamente bits de información que describen quién eres y qué se te permite hacer. Entonces toda esa información fue incluida en una voy a decir cadena simple, pero un largo silencio fuera de una cadena que contenía toda esa información. También me di cuenta de que al agregar las anotaciones autorizadas a ciertas acciones podríamos controlar quién podría interactuar con el endpoint. Por lo que permitimos anónimos en algunos. Pero entonces tendemos el agarre donde dijimos que solo el administrador puede crear en. Entonces dijimos que solo el cliente podía actualizar. Sólo el cliente podía eliminar. Entonces a tu vista llana, en realidad solo voy con el dedo del pie quitar todos estos. En realidad, me voy a ir de pie. Sólo autorizar administrador. Por lo que Administrador va a ser la única persona que pueda eliminar. Voy a una solitaria administradores toe actualizar a alguien para quitar al cliente de su on going toe mucho en los administradores para crear. Pero entonces me voy dedo todo solo clientes autenticados para poder ver a alguien para poner el mismo rol de autorización, pero bueno, clientes, clientes, onda y administradores, por lo que tanto clientes como administradores puede obtener los valores que alguien ponga eso en el get con un valor en el general genérico obtener así que solo persona autenticada debe ser capaz de interactuar con cualquier cosa dentro del, um, entrar controlador por lo que simplemente agregando una autorización global yo es que aunque no lo sepa , el punto final y descuido ponerme las reglas. Está bien. Entonces, en realidad, como solo tengo dos mundos, esto realmente no es necesario ratificados de tres años y sería necesario si quisiera evitar que cierta regla lo hiciera. Entonces con sólo ver autorizado en todo el controlador, no tengo que ver autorizado aquí en realmente no tengo que decir autor está aquí otra vez, ¿ verdad? Porque entonces quien vaya a estar interactuando con cualquier cosa en lugar del controlador más se autentica el. Entonces se vuelve más estricto donde decimos solo autor, ya que los administradores pueden hacer ciertas cosas después. Entonces es para que puedas ir a agregar seguridad, puntera a tus puntos finales. Está bien, así que lo hice por autores, y lo voy a hacer sólo por libros, la cerveza antes de facturar, algunos autorizarían todo este derecho de controlador y luego incluirían lo que necesito incluir en. Entonces estoy dispensando una copia la línea donde se autoriza solo para administradores para que no tenga que escribirlo todo otra vez en el autor de alguien como solo administrador para crear un nuevo libro. Sólo un administrador puede. ¿ Puedo conseguir un libro sobre Dolan? El administrador puede eliminar un libro. Está bien. Pero entonces, lo que se refiere al control, sólo las personas autorizadas pueden acceder a cualquier cosa dentro del controlador. Antes de todo esto era posible, sin embargo, hicimos la actividad de andamios donde ejecutamos nuestro comando, que era base de datos de actualización, lo que descartó, um, nuevas tablas en nuestro base de datos existente en sólo voy a subir el sistema de gestión de bases para mostrarte que tenemos reglas nuestras reglas de usuario. Por lo que estas paradas seis o siete tablas fueron todas generadas por registro en 1/4 identidades motor on Todos están en desarrollo en ayudarnos a autenticarnos en gestionar o usuarios y reglas. . También agregamos, ah pocas líneas a nuestra puesta en marcha donde dijimos a nuestro arranque que vamos a estar usando fichas de cerveza JWT en Este es el tipo de información que queremos incluir son validador. Ya sabes, estas son solo algunas opciones. Está todo apagado. Esta corte lo será. Necesito ponerme bien. No. En explosión mujer y ningún arrendamiento de musa también se añadieron una clase de datos C donde creamos algunos usuarios de muestra a partir del get cool. Entonces la ortografía es importante porque me metí en problemas porque escribí mal administrador en algún momento. Por lo que este paso no se corrió como debería haber sido. Entonces voy a facturar. No en. Voy a hacer click derecho a los cometas en. Escribimos nuestro mensaje, que lo hace, ya sabes, claro posible a quien vaya a estar mirando nuestro código en. Entonces solo me comprometo todo en el fregadero encendido. Entonces una vez hecho eso, siempre puedes ir a casa y validar que estabas dolorido. Escuela no es cebo y como siempre, incluiría el código fuente para esta sección en el recurso está a continuación. 36. Crear y entender la estructura de proyectos de Blazor: Oigan, chicos, en esta nueva sección, vamos a empezar a construir todos los ustedes blancos, nuestra empresa sobre el FBI en nuestra tecnología. Off choice está la tecnología basada en ensamblajes Web de Microsoft llamada Blazer. No Blazer es bastante nuevo, y está construido encima del núcleo de red de puntos. Andi. resúmenes de principios están ahí, pero es una gran tecnología nueva que te permite divertirte, no necesitas ir a reaccionar o angular para conseguir ese peso ligero. JavaScript basado U Y en él sigue siendo muy dot net, Así que todavía llegamos a la corte C agudo mientras disfrutamos de los beneficios de tener una interfaz de usuario muy reactiva para pasar fuego para que este proyecto comience. Lo que vamos a hacer es en nuestro proyecto existente, sólo vamos de pie. Um, bueno, solo voy a colapsar la librería ap proyecto y crear un nuevo proyecto dentro la solución para que puedas tener múltiples proyectos en una sola solución, y solo hago clic derecho en la solución. Haga clic en Agregar haga clic en Nuevo proyecto en luego de la lista fuera de las plantillas de proyecto. Deberías ver blazer. Si no ves blazer, realidad, solo puedes escribir y buscar blazer. Y si, después de todo eso todavía no ves, entonces también puedes seguir adelante e instalar más herramientas y características. O es posible que necesite no cargar los binarios, que en realidad son bolsillos con el punto net core 3.1 sdk. Entonces me temo que tan lejos en el producto. De verdad no sé que no lo estés viendo, así que solo seguiré. Si no ves tres Niños, yo y nosotros podemos trabajar en ello juntos. Alguien para seleccionar blazer arriba como mis plantillas de proyectos y luego le voy a dar un nombre. Yo lo voy a llamar Librería Dashi Y No, sólo el punto de eso. En ocasiones cuando las personas están haciendo proyectos que conocen bien, están haciendo, van a estar construyendo una aplicación que saben que tendremos múltiples proyectos. En ocasiones lo que hacen es crear la solución, darle un nombre genérico sobre entonces los proyectos son más específicos. Entonces aquí se puede ver, como que traje ese principio donde creé el proyecto inicial con un nombre. Y así la solución en el primer proyecto obtuvo ese nombre. Pero entonces voy a presentar otro proyecto en remolque, una solución llamada librería Dash FBI Así que puede ¿Cuándo? Yo porque me gusta mucho eso puedo ver donde simplemente a las confusiones. Acabo de pasar por eso. Sólo sé. Por lo que puedes apreciar eso. Es por eso que la solución en uno fuera los productos del mismo nombre. Pero obviamente podría haber sido refinado un poco más. Correcto, Así que sólo continúe. Tengo un nuevo proyecto librería dash, tú yo y luego voy adelante y click crea. Sé que me van a preguntar qué versión o qué características. Perdón, quiero incluir Así que no quiero ningún edificio de autenticación. Um, me voy en todo lo demás y sólo voy a seguir adelante y dar click. Crear todos los derechos son nuevos. El proyecto está aquí en. puede ver el plus verde porque, bueno, es nuevo, Así que aún no está en gueto, Así que cuando sólo miras esto para la estructura, estoy seguro que vas a tener otro dedo del pie estos un momento. Andi. Sí, tienes razón. Se ve igual que nuestro proyecto de páginas de afeitar que empezamos con que lentamente nos transformamos en el proyecto de un par en. A pesar de que tiene algunos archivos comunes que se telefonean en cada plantilla de proyecto de punto net core que hemos estado buscando. No. Muy bien, Así que tienes tu arranque estándar, Eso sí. Y esto es echar un vistazo a eso donde las funciones de inicio son más o menos la misma forma de o iniciar web. ¿ O tendremos o constructor tendremos o configuraremos una Web o configuraremos servicios? Muy bien, configure los servicios. Y tenemos configurar Alright on. Entonces se puede ver saber que se han agregado diferentes mercancías medias. Entonces en esta situación tenemos servicios que arterias de páginas y en un blazer lado servidor Encendido, pues no. Aquí. Ya ves que tienes, Ah, algunas opciones diferentes. ¿ Qué? El punto es que dotnet core proporciona una base sobre entonces, en base a lo que quieras, viejo a menudo aplicación, puedes seguir adelante y agregar los servicios requeridos sobre conseguirlos bootstrapped en el inicio la aplicación. Entonces no graba como un lienzo en blanco. Y en base a lo que pones en tu startup que dice que estás formando una identidad fuera de tu aplicación y su comportamiento general y capacidades para que puedas tomarte algún tiempo y mirar las diferentes y probablemente compararla con el inicio de ese CS de nuestro a p. I proyecta solo para ver las diferentes al menos no las que construimos, sino las diferentes funciones que se están inicializando. Por lo que aquí, dentro de los extremos de uso tienen los controladores mob encendidos. Creo que eso es un cambio que hicimos. Entonces por aquí es realmente trapeador blazer, esperanza en fregona padre pit. Entonces ya ves, es como diferencias, pero luego todo lo demás procediendo que es lo mismo El mismo tema tps tres dirección. Eliminamos la estática más rápido, más a p I. Pero el enrutamiento está ahí. Y si miras, ves usar girando en la https tres dirección ponemos en estos en Estamos usando estos porque tenemos en nuestra autenticación y autorización una vez más el mismo punto net core solo comportamientos diferentes basados en lo que se inicializa. No pasar de eso todavía tenemos el programa que CS que hace más o menos lo mismo que todavía tenemos nuestro molesto es que Jason que fuera de la caja se ve más o menos de la misma manera Hemos compartido tan sobre el estilo de defensa. ¿ Pueden los archivos que notes que tienen diferentes extensiones. Entonces si estás acostumbradoa NBC, entonces tienes CS que puntar CS html en def. Tienes maquinilla de afeitar de la que vas a ver atracado sensacional con una corte detrás de archivo en ninguna parte . Mirar blazer en la extensión no es Reser. Entonces eso te podría parecer oh porque, ya sabes, tienes páginas de afeitar. Habrías pensado que Tereza Melocotones tendría esa extensión, pero no lo tienen. Por lo que las páginas blazer han leído baterías como la extensión. Yo sólo voy a tomarme un tiempo y pasar por cada expediente sólo para mostrarles cuáles son los hechos por lo tanto fuera de la caja. Por lo que no tengas razón. Esto tiene algunas configuraciones básicas diciéndonos, ya sabes, el, um, como alguna votación cruda por errores ahí. Está bien, No tienes que cambiar nada en esto a menos que realmente quieras cambiar algo. Puedes ir a las importaciones, y eso es no has, como un árbol Duric global para todas las bibliotecas que se usarán en tus diferentes, um, vistas. Entonces a medida que avanzamos y empezamos a poner en nuevos espacios de nombres y nuevas bibliotecas y funciones y clases cuando sabes harías la declaración de uso en cada expediente judicial en un archivo CS punto . Si sólo lo ponemos dentro de la maquinilla de afeitar de inicio de importación, se hará globalmente accesible a todos los demás, um Riza ph en el proyecto. Entonces para eso es para lo que luchan las importaciones. Si entro en compartido, ves que tienes las cargas principales tienes el menú de navegación encendido. Se puede ver que su número básico de archivos con insinuaciones off c agudo. Por lo que siempre se ve C acorde afilado con un a signo. ¿ Verdad? Entonces aquí se ve ese cordón de señal encendido. Entonces esto es literalmente sólo ver tabla afilada. Todo eso es el mismo c agudo que hemos estado escribiendo para saber. Y eso es lo que hace que por favor sean tan grandes que no tienes que mezclar y mucho con demasiado javascript. No, no es que JavaScript sea malo. Pero al menos cuando graban en una acción, es más fácil identificar dónde podrían salir mal las cosas. Porque toda la cancha se ve muy similar en todo el tablero. Correcto. Entonces este es nuestro menú suficiente en Bueno, puedes ver aquí tenemos tres, um, enlaces fuera de la caja ahora mismo. Voy a pasar mucho tiempo ahí. También tenemos páginas, por lo que las páginas serían donde irán nuestras páginas personalizadas. Entonces, como siempre, tener el discurso índice, que es sólo decir hola mundo en otra cosa. También notarás que además de nuestros mosaicos HTML regulares, ves algunas etiquetas personalizadas que son, um, um, básicamente pláticas para darnos componentes de afeitar en el proyecto. ¿ Verdad? Ya verás en fetch data, dirás un poco más C agudo pasando. Por lo que primero definió la página en, luego le das la dirección. Digo que esta es una página en las direcciones slash fetch datos. Ya que quiero llegar ahí, eso es lo que debería teclear derecho. Entonces verás aquí una declaración de uso. Entonces, como dije, puedes incluir la declaración de uso en la propia página, o podrías ponerla en importaciones y sería accesible globalmente. Um, y luego ya ves, inyecte aquí. Por lo que hemos estado haciendo bastante fuera de la inyección de dependencia para saber esto es inyección de dependencia en la vista de Blazer. Entonces cuando diseñamos autorepositorios y nuestros servicios personalizados, solo tendremos que decir inyectar, llamar al servicio por su nombre. Y entonces podemos empezar a usarlo de la misma manera que estamos para inicializarlo en nuestros controladores y luego empezar a usarlo. Muy bien, en el tema. Milicianos. No, ves a la señal en, Vamos, tus declaraciones. Donde se ve si este soportable es no. Entonces sólo muestra este texto. De lo contrario generar la tabla en el establo se va dedo del pie tienen roles que se generan para cada ítem dentro de esta lista. ¿ Verdad? Por lo que los pronósticos aparece una lista de pronósticos existe porque en el cordón, se declaró el entonces sobre inicializado un sumidero. Por lo que tienen una función inicializada incorporada donde dicen, cuando las páginas se inicializaron. Yo quería seguir, ir a llenar pronósticos con algo. Entonces somos servicio de pronósticos que obtienen pronosticación un sumidero. Echo de menos tomar departamentos fuera fecha hora? No. Muy bien, así que más o menos cuando empecemos a construirlo, esto es lo que va a quedar cuando queremos conseguir cosas. Vamos a tener nuestro servicio inyectado, y vamos a decir servicio nuestro reporte dot cualquiera que sea la función en la que esté, entonces lo va a recuperar, lo puso en la lista, y luego cargamos en consecuencia. ¿ Verdad? Um y luego Así que estas son las páginas de muestra. En cuanto ejecute la aplicación. Asegurarte cuáles son las muestras Un barco. Yo sólo quería tener ah, mirar y sentir fuera de los diferentes elementos de acorde en los datos. Por lo que obtenemos una carpeta llamada Datos y Datos, como sabemos representa. Ya sabes, los datos que sean los que estén pasando por nuestros modelos fuera de las tablas de datos reales. Correcto. Por lo que este dato, se usa holgadamente. Podemos cambiarlo a modelos Onda a medida que vamos de la mano con multa en nombre apropiado o las cosas apropiadas para almacenar bajo datos, considerando que este es un blazer up que está leyendo de un FBI. Entonces eso significa que este blazer up no va a interactuar directamente con nuestra base de datos es lo único que sabrás de una fuente de datos es el hecho de que se lo dijimos o lo estaremos contando . Obtén tu información de la A P I o por favor la información recabada en el formulario en las manos fuera del AP y deja que el FBI haga la muñeca. ¿ Verdad? Entonces por eso estamos construyendo esta solución desacoplada donde el AP maneja todo fuera del brokerage con la base de datos encendida, entonces cualquier otra aplicación cliente no tiene que almacenar su propia fecha. Yo sólo puedo usar al FBI para llevar a cabo cualquier operación para que este lugar arriba pudiera haber sido fácilmente un angular arriba reacciono arriba de ti, Jase arriba o incluso un móvil arriba. Realmente no importa. Simplemente puedes sentarte en la cima y hablar con el FBI. Por lo que sigue adelante, sólo echaré un vistazo rápido por dentro del agua. Entonces tenemos pronósticos meteorológicos y ya ves, aquí tenemos las fechas, la temperatura C temperatura f en verano on, def. Te de vuelta en el archivo de datos de fetch, verás que eso es lo que se estaba imprimiendo. Se pronosticaron que fechas las temperaturas de cadena C y F en el resumen. ¿ Verdad? Entonces eso significa que este es el modelo fuera de los datos que se están representando dentro de esta derecha en adelante, entonces el servicio es más o menos lo que hemos estado construyendo en nuestro repositorio donde está llamando. Entonces esto es solo un picor inicializado o consiguiendo llenar una lista fuera de los resúmenes en, entonces esto no va a decir generar una lista aleatoria fuera de los pronósticos. Eso siempre parece así. Dame una lista aleatoria. Los pronósticos meteorológicos de tipo apagado, que es la clase de datos que acaba de ver llenan las propiedades con algunos valores aleatorios encendidos . Entonces eso es lo que se está devolviendo. Entonces, básicamente, esto está siendo devuelto en remolque. Esta llamada nuestra esta variable en entonces. Por lo que diciendo inicialmente claramente no tendrá ningún dato, pero una vez que tenga datos, por favor rellena la tabla en. Realmente no hay nada más en esto en este proyecto que tenga que mirar. W w Ruta ha sido extática. Fuego tan bootstrap e icónico, um, fondos en el número uno correcto para ejecutar esta aplicación para que podamos ver. Entonces ahora mismo está diciendo Boots, librería, dash a p a Ese es proyecto armenio. ¿ Verdad? Entonces si quiero cambiar el proyecto medio, siempre puedo hacer clic derecho en el proyecto que quiero en. Decir, establecer, iniciar proyecto o sentarse como inicio de proyecto. O puedo usar este desplegable aparecer y simplemente cambiarlo por el que pretendo ser. Es lo que Una vez que sea el inicio del proyecto, siempre estará en perno encendido. Entonces voy a ejecutar esta aplicación para que podamos previsualizarla. Muy bien, Así que este es nuestro barco fuera de la caja, por favor. Aplicación aérea contra él nos da. Ah, bonito mirarte. Yo justo fuera de la caja, Onda. Tenemos tres páginas, así que tenemos casa tenemos contador on fueron buscados líderes. Voy a empezar con datos franceses porque realmente no miré a mostrador. Entonces voy a hacer, buscar fecha, y luego analizaremos contra juntos. Entonces cuando sí busco datos, ves, ya ves,solo los carga. Entonces esperaba que te tomaras un poco más. Digamos, llegaría a ver la carga que fue a ver si puedo refrescar todo el proyecto. Entonces recuerda que esto es ah, una sola aplicación de ph. Entonces, ¿quieres pegarle? Re fresco está literalmente yendo dedo del pie. Um, refresca toda la aplicación. No necesariamente sólo el melocotón. Está bien, así que cuando haga clic, busque más tarde. Está bien. Bueno, se está cargando demasiado rápido para que realmente veas el ingreso del Señor arriba. Es realmente genial. Entonces mientras está obteniendo los datos, puedes mostrar algo, y lo hará automáticamente con muy poco esfuerzo. Viste que todo lo que necesitaba era unas declaraciones. Cualquier hoyo Vamos a contador. Entonces contador tiene un botón que dice Quick Me on cuando hago clic, solo se va a aumentar en tantas veces como haga clic. Simplemente se mantendrá en incremental. Por lo tanto, veamos la base básica para eso. Por lo que la base de la corte para este expediente es sencillamente elegante. En primer lugar, comenzamos con la página y la cultura de corte de dirección. Ahí es donde se llega desde la URL base, ¿ verdad? Por lo que cada página cita unquote, es realmente un componente que así los llamaron. Es que es un componente, y ese componente puede tener una dirección o puede ser un componente parcial. Saber lo que está pasando es que se ve una variable aquí llamada conos actuales, ¿ verdad? Entonces, una vez más, ¿quieres ver el exterior? Ya sabes que ese c afilado por dentro del HTML están en la vista de la navaja, ¿ verdad? O elevar su sintaxis. De cualquier manera que quieras término, es entonces tenemos nuestro botón, que es ah, botón clásico con algunas, um, um, botas clases de tienda puestas. Después te das cuenta de que tienen un at sign antes de hacer click. Por lo que todos sabemos que JavaScript nos da estos eventos pick son estos eventos que pueden ir en diferentes elementos. Todo lo que hice fue quitarme ese lado. Y esto parece como se vería si fuera JavaScript. Escribe Owen. Haga clic en. Entonces sólo se ven paréntesis de corsé abierto y cerrado. Perdón, entonces. Simplemente lo sabría. De acuerdo, Debería buscar alguna función de JavaScript llamada incremento. Cuenta con. Entonces llamaría aquí al JavaScript, aunque en Blazer, no necesitamos javascript Lograr eso. Podemos simplemente poner el exterior para decir, OK, esto va a ser un c afilado. Y si pasas sobre él, notarás que es un evento llamado boxes, un evento especializado tipo off que estamos especificando aquí y luego Ya sabes, ¿qué es eso? Esto no se destaca. Por lo que va a decir incrementos de contenido. Por lo que se espera que la sección de corte se vaya dedo del pie tener alguna función llamada incrementos cuentan. Oh, mis faltas. Ya habríamos inicializado son variables. Corrine. Cuente con, entonces. ¿ Ves aquí que tiene la función increment coat? No, sólo piénsalo. Cada vez que haces clic en esto todo lo que está haciendo es hacer un conteo actual más plus, pero lo que no estás viendo su núcleo que dice: OK, OK, no, que este valor ha cambiado. Volver a la actualización. El valor aquí, siempre y cuando el valor cambie en cualquier lugar que cambie dentro de la corte basado en cualquier lugar en el que se esté representando. También cambiará. Y eso es lo que hace que las jugadas sean tan fáciles de usar y tan fáciles de crear. A muy sensible no soy sensible en términos fuera re dimensionamiento pero responsive en términos fuera de la experiencia del usuario por completo, Usuario interfiere en la aplicación. Entonces eso es un bajo rápido para recorrer su rápido y sucio arrancó blazer. Lo que voy a saber es modificar nuestras muchas opciones porque recuerden que vamos a estar lidiando con libros y autores, y también necesitaremos algunas capacidades. Toe iniciar sesión. Yo soy el padrón. Algunos quieren ir a nuestro menú suficiente en Voy a cambiar o resolver estos enlaces. Entonces este dice, casa dejo solo casa, cambié de contador para ver a los autores en nuestras lágrimas buscar relacionados con guardar libros. Entonces fuera de curso, si cambio esos, también necesitaré cambiar el viaje. Por lo que no hay las meseras sólo contador. Dice que solo pies buscan datos, así que solo digo la verdad para ver autores y fuera de éste para verlo libros. Entonces eso significa que necesito componentes, um, uno para autores, Uno para libros. Pero entonces sí dije que vamos a tener algunas características de registro y de carga. Entonces lo que voy a hacer es simplemente crear dos elementos de menú más en el Este va a estar tan apenado. Está bien, déjame tomar la sal. Um, voy a explicar lo que significa esa cosa novedosa del ing solo lo tomaré retenciones por no. Entonces estamos en casa después Digamos que tengo mucho tiempo en Andi. También tengo un padrón, acuerdo? Y entonces probablemente me gustaría cambiar. Aplicar estos iconos alrededor, saber que tienen los iconos predeterminados. Esta es lista rica, deshonesta. Además, éste está en casa. No estoy tan familiarizado con esta biblioteca. Cuatro iconos, pero sólo voy a dar un salto de fe aquí. Y lo que hice fue quitado Lo que vino después de lo disgustado. Entonces me tiro, acabo de quitar, como, digamos, digamos, el plus en el espacio de control de noticias. Y luego porque los archivos de script, su estudio visual me está dando la lista de todos los iconos potenciales que tengo. Entonces digamos que quiero usar por mucho tiempo en, uh, no quiero usar el tiempo sólo mirando icono. Por lo que encuentro algunos buenos iconos en. No hagas sugerencias fuera de curso. Tu idea podría ser diferente a la mía, Así que voy a usar un golpe para el inicio de sesión. Déjame ver si tienen un libro. Tienen un libro para registro. Está bien, eso funciona para mí, acuerdo? Y luego todo lo dejo el cierre en la lista. Ridge, Vamos a echar un vistazo a eso rápidamente. ¿ Todo bien? Entonces cuando esta nueva página señores, ves, ya ves,sale. Entonces creo que estos muchos artículos están buscando o los intereses madereros hay ambos destacados igual que casa, porque se supone que el link home tiene ese resaltado. Y ahora mismo estos están apuntando a cualquier cosa. Por lo que todos se ven igual que el hogar. tanto que di estas direcciones. Entonces es por eso que ves estos planetas para más adelante que se verán de manera diferente. Um, cuando hago clic en uno de estos que creé el que ves Lo sentimos, No hay nada en la dirección de tira porque está apuntando a algún recurso que aún no he creado. Entonces lo haremos más adelante. Pero por ahora, eso es todo para nuestras introducciones. Un blazer. Cuando regresemos, comenzaremos a configurar nuestro repositorio basado en clientes para que podamos empezar a comunicarnos con nuestro FBI. 37. Configuración de los repositorios de cliente y de servicio de HTTP y: Bienvenidos de nuevo, chicos. En este video, vamos a empezar a hacer algunas configuraciones de línea de base en el nombre de nuestro proyecto Blazer. Iban a estar configurando el repositorio basado algunos endpoints estáticos en solo hacer algunas configuraciones generales del proyecto para que no tengamos que volver a visitar estas cosas. Ah, ya salí adelante y creé algunas carpetas. Tengo una carpeta de contratos. También tengo una carpeta de servicio y nuestras carpetas estáticas. Entonces vamos a empezar a ponerles algunos archivos en ellos. Voy a empezar con la carpeta de contratos por lo que la carpeta de contratos se va toe have on interface file. Por lo que la huelga haga clic en agregar en Anderson para crear una clase. Pero entonces va a ser una interfaz, y el nombre va a ser repositorio basado en yo. Doy clic en Agregar entonces, como de costumbre, que es de ser una clase a una interfaz, probablemente te estés preguntando, OK, pero ¿no acabamos de hacer con esto con el AP? ¿ Por qué voy a hacer eso otra vez? Entonces, ¿lo que vamos a estar haciendo es poner en marcha alguna funcionalidad estándar para blazer o estás preparado para interactuar con el A P I? Por lo que ya sabemos que hay ciertas cosas que configuramos en 10 puntos para hacer en esos serían las operaciones actuales que creamos. Nosotros actualizaciones eliminamos en leemos, correcto, Así que tenemos todo en puntos para hacer esas cosas. Entonces básicamente, solo estoy configurando algunas funciones base que actuarán como proxies para hablar con los s. A P. Así que no tenemos el dedo derecho esas solicitudes cada vez, ¿ verdad? Entonces me voy dedo del pie, tener una tarea que se va del dedo del pie Di que se ponga bien. Entonces tengo una tarea fuera tipo t on Entonces ya discutimos. Entonces voy a hacer el mismo tipo de genérico. Um ahí, Buster aquí, donde voy a decir t on fueron ver call on class. Está bien, entonces veremos todo ese trabajo Sultan en una parte posterior. Pero la primera función es la tarea t on. Nos estamos subiendo. Entonces voy a pasar en la URL, como en los puntos finales que pretendo obtener datos de en el I d. Entonces éste es para el único, um objeto o una sola recuperación de registros. El siguiente, tenemos otro. Ponte, entonces esto. Get también es una tarea, pero esta está regresando. Enumero tipo té justo en el mismo nombre se pone Pero entonces esto es solo una sobrecarga donde está tomando un parámetro de cadena que es solo la URL Siguiente arriba tenemos o r crea. Por lo que esta vez este va a ser Ah lingotes. Así que ten task bull y create on Estamos pasando en la URL sobre nuestro objeto en luego básicamente eliminar en actualización para lucir de la misma manera con una excepción para la actualización donde los opiáceos van a tener al tercero. Eres ciertos permisos o lo siento por el I. D. Bueno, en realidad, ni siquiera necesitamos eso, para ser honestos. Entonces quiero que solo te vayas a llevar eso porque realmente no necesito ese tercer, um, um, parámetro así que crea actualizar y eliminar. Mira virtualmente de la misma manera, acuerdo? Ah, pero borra Toma la idea en lugar del objeto tratado de crear y fuera del que pasa el objeto. Pero la ventaja sólo está tomando la idea. No. Después de implementar el repositorio, voy a implementar el servicio. Voy a llamar a éste. Bueno, llamé a un lleno de servicio, pero donde va a usar el mismo nombre, y lo voy a llamar repositorio base. Muy bien, entonces. Estos van a ser los costos directos de nuestras ideas. Repositorio. Entonces, éste, la definición va a lucir un poco diferente porque entonces voy al repositorio CVS off Time t esta vez, Colon. Yo pieza. Entonces, no, estoy heredando de más. Um, interfiere apagado tap t Así que la cosa es, que sepan que estamos haciendo esto, um, repositorio obits dinámica donde no me dudo del dedo del pie recrear función en deck y los spots en el sobre esta funcionalidad base se hará de nuevo. Una especie de clase que de paso. Entonces no hicimos este paso extra en nuestro repositorio anterior, Así que lo hicimos de esa manera, y luego solo les estoy mostrando o obstrucción genérica que puede estar haciendo así puedo ver dónde t lleno en clase. Muy bien, entonces. Tengo toe como de costumbre implementa el repositorio o los interfiere. Perdón. Entonces, no, obtenemos nuestra ventaja creativa, metemos en opiáceos de brillos. No, Para que este abierto funcione, necesito tener. Mis privados solo lectura propiedad y va a estar fuera tipo I h T T p fábrica cliente. Está bien, así que este va a ser nuestro factor de clan. Ahí es cuando el manejar todas nuestras conexiones con el FBI y la U solicitan antes y estoy llamando al cliente objeto. Andi, ya sabes, solo tienes que seguir adelante e incluir cualquier biblioteca que te vaya a decir que necesitas tener puesto entonces como su cliente, tenemos nuestro constructo. Er así que este constructor simplemente tomando esto es un parámetro, y solo estamos haciendo nuestra inyección de acuerdo con los derechos. Entonces yo solo lo voy a inicializar también. El objeto cliente entrante. Entonces escribamos juntos nuestro crear corte. Por lo que algunos fuera de la cancha y vamos a escribir se va a repetir el dedo a través del otro . Entonces después de escribirlo una vez, realmente sólo voy a copiar y pegar y motorizar algunos elementos esenciales sobre podemos movernos a través de esto relativamente rápido, Así que voy a empezar diciendo búsqueda viral. Está bien, así que solicito es básicamente cuando o tú camino o usuario hace clic en algo en R u y en que algo sería el discurso del autor. Entonces vamos a mandar una solicitud al FBI, ¿ verdad? Por lo que estoy construyendo la petición. Estoy diciendo Vira quest es igual a nuevo mensaje de solicitud http justo en, luego para formar este mensaje. Y si solo miro a los señores supremos para esta función, veo que tienen el método http coma la petición, Earl. Correcto. Entonces voy a decir que es punto de método TTP. Y luego he accedido a todos los métodos que habrían construido en nuestro A p. Firmé Love Post escribe Recordar, crear utiliza el método post en eso. Aquí es donde entra en juego la documentación. Porque entonces la documentación habría dicho al desarrollador fuera de la U Y para informarte, el desarrollador del edificio U A encima de un FBI existente. Qué método usar al crear sur, ver, ver, crear creación en puntos usando get ya Onda. hemos visto con post. Por lo que puedes muy basado en el diseño en entonces el siguiente parámetro sería el u R l, que es la chica que entra a través de la llamada de función. Muy bien, Después de eso, vemos si el objeto que estaba ayunando es no. Está bien, entonces no queremos hacer nada con aviso. Esto es ah, tarea regresando nuestros toros, así que acabo de regresar caídas. Significando que este fue un intento fallido son átomos inválidos. Muy bien, Siguiente. Si eso pasa la prueba, voy a seguir adelante y ver contenido de puntos de solicitud. Tanta. Construir el contenido para la solicitud y fui a ver es igualdad nuevo contenido de cadena en el interior del contenido de la secuencia. Tenemos que convertirnos a Jason. Entonces voy a decir Jason convertido. Muy bien en. Creo que necesito incluir una biblioteca para esto. Simplemente incluido rápidamente en eso es nuevo giro suave. Entonces necesito una biblioteca llamada Newton Soft Jason, que no creo que sea parte del paquete por defecto así que podría haber ido a nuevo get, Pero aquí mismo, están diciendo, Bueno, sólo puedes encontrar y instalar la última versión. Por lo que esto automáticamente irá a nuevo get let new start for my on. Ahí vas. Es pasar la última versión para que le puedas dar algo de tiempo, y luego una vez hecho, ves que el color cambia, ¿ verdad? Entonces, Jason, convierte punto en luego quiero serializar el objeto en. Entonces voy a pasar en asientos pidiendo valor de objeto o B J. Así BJ representa los datos que vinieron o la carga útil que necesita ser publicada justo a continuación. Vamos a guardar nuestro cliente es igual a mi objeto cliente http, que es clientes de subrayado que crea clientes. Entonces estoy creando nuestros clanes en. Entonces voy a decir que la respuesta del mensaje de respuesta http es igual a esperar en. Después fui a ver a los clientes el objeto cliente que acabamos de crear. Yo quiero decir que quiero que los dedos manden el mensaje. A sincrónicamente envié esta solicitud es sincrónicamente. Entonces lo que va a hacer va a seguir. Después manda la solicitud el, luego devuélvela aquí. No uso un fuertemente tipado, um, ya sabes, usa fuego aquí porque esto significa el resultado de esto allá. Tiene que renunciar. Muy. Entonces quieres estar muy, muy bien aquí. A diferencia de sólo ver vier para constructores, ¿verdad? Algunos viendo quiero en el tema respuesta TP. Lo extraño y no podemos ver una vez que consiga la respuesta, puedo comprobar. Perdón. Alguien para decir si los puntos de respuesta estado para y si solo miro esto la respuesta puedo ver todo lo que vuelve con una respuesta. Obtengo su estatus. El puntaje es el éxito que se anotan. Um, te pones sobre el inicio de la escuela que ya fueron revisados. Conjunto. Las escuelas pueden ser 224 etcétera, etcétera. Entonces, base en la escuela de estatus, eso está en la documentación, la que está siendo devuelta. ¿ Quieres chequear? ¿ Es ése que tienes de vuelta? Entonces en este caso, ustedes saben que con crear basado en nuestro conocimiento de la A p I que acabamos de construir nuestros han estado construyendo edificio. Perdón. Um, deberíamos volver a las dos o cuatro. Entonces si inicio de respuesta ese estatus anotado es equivalente a Andi, creo que puedo decir sistema esa neta que empezó anotó eso en eso. Yo sólo voy a buscar a crear Ted. Está bien, Entonces si quieres atemperar, pon esto en usar el espacio, así que si es igual a creado, entonces puedes devolver verdadero, o déjame ver. Tan solo regresa. Cierto. Muy bien, vamos, entonces. De lo contrario, sólo podemos devolver las caídas. Entonces si todo lo demás falla, acabamos de devolver caídas. Ahora. Algunas líneas rojas aquí sobre eso es porque no las implementé como fregadero ni implementé la función como fregadero. Ahí vamos. Entonces solo recuerda poner el fregadero A porque no es con ello por defecto, acuerdo? No, prácticamente, al menos por no, esto es lo que encontrarán todas nuestras peticiones. Un look como la solicitud sobre entonces la respuesta. Um, ya sabes si fue una buena respuesta, nuestra respuesta corporal. Esencialmente, esa va a ser la base básica. Entonces lo que realmente está sucediendo aquí es que cuando de los clientes la persona hace clic en crear, necesito asegurarme de que nuestra la persona está creando un registro y ellos dan clic en Enviar. Necesito escribir código de mis clientes para ver que cuando la persona haga clic, enviar en este formulario para autores para argumento. Ver, quiero asegurarme de pasar los autores y señala la información que se está enviando antes siendo utilizada aquí, por lo que es muy genérica, por lo que la misma base de código se va a utilizar para autor para libros sobre. Si introducen otras mesas en la línea, es solo té. Entonces eso es tan genérico y obstruir. Ofrecemos presentar cualquier tipo de clase. Entonces se va a decir que soy invierno crear una solicitud. Y sé que esto es un create, así que está posado. Entonces quería intentar crear contra esta chica en. Entonces, ya sabes, acabamos de revisar tu cursor. Entonces quiero que el contenido fuera de la solicitud sea el contenido fuera del objeto entrando en entonces No, vamos a pasarlo, esperar la respuesta y luego analizarlo La respuesta a ver es que la respuesta que lo significa tuvo éxito, si no se devolvió sigue lo que significa que la operación no fue exitosa. Muy bien, ninguna actualización de energía va a parecer bastante similar a esto. O déjame simplemente bajar la línea. Entonces echemos un vistazo a la eliminación. Entonces las pistas. Como dije, mucho de la cancha se reutilizará pero luego se eliminará empezar diferente. Entonces borrar es sólo conseguir en yo d y la chica. Entonces primero voy a comprobar si la d tiene sentido. Entonces si la idea es menos de un derecho, entonces regresa cae. Significa esa operación que intentó en campo de operación. Déjenme sólo poner en la carcasa de nadie. Entonces es que no tienes ningún error viniendo en el camino. Está bien, entonces la idea es igual en remolque. Lo sentimos. Menos de uno, entonces eso es falso. Eso es un filisteo. Entonces solo puedo copiar esta línea donde construyo las solicitudes. Yo sólo quiero copiar eso. Por lo que voy a ahorrar solicito. Pero entonces esta vez es un borrado. Entonces el método FCT son las necesidades, y entonces estamos pasando en la u R l más el i d. Está bien, entonces ¿recuerdas que eres tú? Earl necesita estar en el método http off delete, pero luego toma el u r l slash el i d. número. Entonces eso es todo lo que estamos haciendo aquí. Apenas estamos viendo enviar la respuesta o servicio en la solicitud con el método, Los conduce al conde pasando las ideas hacia arriba como parte de la cadena. Correcto. Entonces hacemos lo mismo más o menos donde construimos a nuestros clientes. Entonces esperamos la respuesta. Sólo voy a copiar esas dos líneas en lugar de llevarlas por todas partes en base a. Entonces comprobamos si los entrantes marcaron. Entonces básicamente, todo fuera eso es casi lo mismo. Excepto oh, son escuela sobresaliente que estamos revisando después de que no se cree eliminar. Pero es una herramienta para yo lo creo. Waas, que no es contenido, ¿verdad? Entonces estamos revisando si obtenemos una respuesta sin contenido, entonces sabemos que fue exitosa, Andi. De lo contrario acabamos de regresar por nosotros porque fue un fracaso. Pero se ve todo después de la declaración if, casi igual. Excepto afinación fina estos dos tan positivos que aquí y tratar de llenar el resto en. Entonces, cuando repitas, lo pasaremos juntos. Muy bien, así que vamos a pasar por el encuentro juntos. Por lo que la solicitud se ve bastante igual. Excepto que el método es Get on. Estamos pasando en la URL cerrar el i d. construimos nuestros clientes, obtenemos nuestra solicitud SINDOOR. Enciende la respuesta, entonces estoy revisando. Si el código de estado está bien, entonces el contenido. Entonces quiero contenidos recordar que se pone significa que quiero recuperar alguna información , así que sé necesito el contenido, ¿ verdad? Por el momento, el contenido es igual a on. Entonces solo voy a decir respuesta que el contenido lea una cadena Fácil. Algunos, ¿sabes? De acuerdo, si no llegaste tan lejos y no se imaginó, ya sabes, ya sabes,qué va dentro de la declaración. Considerando que no es un matón y eso está siendo devuelto, entonces eso está bien. Es decir, siempre y cuando tengas la 1ª 3 líneas correctamente aquí en el camino correcto. Entonces después de que realmente el polvo re un pensamiento, entonces regresamos el convertido. El objeto serializado sobre básico. Alicia lo va a fregar contra lo que sea que sea el té de clase de datos en ese momento. Onda. Tenemos contenido justo en. Entonces de lo contrario sólo estaban regresando notas. Entonces eso significa que nada volvió a pasar al otro consigue a quien consiguiera la lista, Um, la primera dependencia para mí y bastante lo mismo, excepto que ninguna idea en las partes de URL. Esta vez en adelante, entonces es más o menos lo mismo. Yo sólo voy a revisar y asegurarme de que me puse OK, responde el contenido. Lo leemos como string y luego regresamos un Jason convertido PC, basa menos fuera tipo T. Muy bien, así que esos dos, um, puedes disponer el video on despegar esas pocas líneas que quizá no tengas no tuvo problemas pasar a la actualización. El de actualización. Se ve bastante similar dedo del pie que crean. Aceptar la solicitud de que el contenido piratas va a ser un poco diferente en campo de golf. Yo quiero cambiar, incluyendo aquí. Sistema ese texto derecho, aunque esa inclusión. Entonces así es como espero que se vean los datos. Acabamos de romper la línea porque eso está desgastando la pantalla encendida, después el método que estamos usando su puesto. Por lo que hay una diferencia de entrada de ciudad en patch que desarrollamos usando put. Pero también hay un método llamado Patch en ambos de estos 100 días en alza. La diferencia, sin embargo, es que la puesta voluntad es como un híbrido. El barco dirá: Bueno, Bueno, cualquiera que sea la información que enviaste, voy a usarlo para reemplazar el disco que está ahí tan similar a uno que estamos probando o actualizando y yo tenía un registro completamente poblado. Pero entonces sólo le devuelvo algo de información, ¿verdad? Literalmente. Se vuelve a poner la cierta información y cualquier cosa que no la puse. De este modo se impagaron los valores. Por lo que el put reemplazará la información que hay ahí con la nueva información, mientras que el parche en realidad mapeará lo que hay que reemplazar, luego simplemente reemplaza eso. Pero todo lo demás permanece intacto, así que esa es la diferencia entre un puesto en el parche. El puesto también creará el registro si no está ahí. Entonces si dije que quería actualizar autor con yo d 100 no hay también con idea 100 entonces se pondrá un nuevo también con la información en consecuencia. Por lo que avanzar en eso es nuestra configuración base para nuestro repositorio bien basado o simplemente el punto de eso. Esto es solo otra sobrecarga del contenido de la cadena donde puedes ser un poco más explícito con la inclusión en el ataque de medios que se está enviando. Um, pero es la misma función que se está utilizando en nuestro create. Está bien, entonces en nuestros crea, simplemente no usé esa sobrecarga, así que puedes probarla con y sin y avísame cómo funciona. Pero esa es la cancha. Entonces eso es todo por encender el repositorio base. Lo siguiente que voy a hacer es configurar algunos valores estáticos que vamos a estar utilizando a través de nuestro desarrollo. Así que solo voy a hacer clic derecho estático en con la clase de anuncio en Número lo va a llamar en puntos así y puntos todo bien en esto es solo una técnica desconectando estos endpoints estáticos. Algunas personas las en la configuración. Pero la realidad es que muchas veces cuando te veías giras en espera para llamar y FBI los ves tipo de la bebé cada vez y luego te pones la muñeca fuera de la URL. No. Lo que pasa es que si esa base estás enfermo o no, no te refieres a tus cambios. Entonces si lo tuviste 50 veces en tu esquina, subiste a cambiarlo 50 veces, Lo que estamos a punto de hacer es ponerlo una vez para que si tenemos que cambiar, lo cambiara en un solo lugar, y está bien, acaba de cambiar. Estoy creando una clase estática clase pública estática en puntos en Entonces voy a crear parámetro estético son lo siento propiedad tan estática en, entonces esto va a ser una cadena, y voy a llamar a esta base de propiedades. U R l bien. Y entonces sólo lo voy a inicializar. Entonces esta base Ural será la u R l para nuestra a p I. No, esta chica, obviamente ya que todo es local, va a ser la chica que hemos estado usando dentro fuera de Cartero. Y cada vez que entramos en bote profundo amarrado que tu latte ha estado subiendo en el navegador para la librería FBI, eso es lo que vamos a usar. El punto es que si publico ese FBI mañana, esa base que eres no va a cambiar porque no quiero trabajar en locales los que quiero trabajar a través de Internet están en cualquier dirección hospedada desde sus transmisiones. Por lo que sólo puedo conocer el cambio una vez aquí en entonces cada vez que pase y tú realmente estás ya se enfermará. Entonces para recuperar esto rápidamente, solo voy a volver a mi ap proyecto Andi. Puedo lucir con bastante facilidad dentro de las propiedades, estas propiedades, solo puedes dejarlo caer. No traigas ajustes de césped que j hijo on. Entonces lo que pasa es que ves dos direcciones. Se ve la aplicación tu y puerto SSL. Por lo que quiero la aplicación Tu con el signo de puerto SSL. Ally, ¿sabes, http? Bueno, debería ser un tema central. T p s colon slash Plus, otra forma fácil probablemente sería simplemente entrar en cartero y recuperar de ahí. Por lo que realmente podría hacer eso en su host local http s, Colón 44382 Correcto, Así que eso va a ser nuestras bestias. Puntos finales, RBs, euro. Entonces acabo de poner eso ahí, Otro deporte en un trailing slash, Um porque entonces sólo voy a aludir las cosas a ello. Entonces la siguiente va a ser otra propiedad, y va a ser estática en una cadena en ese entonces. Esta vez tengo autores en puntos. Muy bien, así que casi todos los endpoints que luego se fue dedo del pie tienen solo puedo poner aquí y yo solo construyo la cuerda una vez en Va a ser ah, en inter polaco cadena interpolada con la URL base justo en. Entonces después de eso, la palabra clave FBI recordar que tienen a la bestia un pre número oral slash ap A Así que la slash. No nos tengo el año pasado antes de un par porque ya puso el listón dentro fuera de base. Estás bien. Entonces es basar tu mal, que tiene su barra e p una barra en entonces autores y luego entender para duplicar esa línea y hacer lo mismo para los libros sobre. Simplemente fingiré que esos slash también está al final. Está bien, así que esto va a ser libros y puntos. ¿ Todo bien? Entonces cuando construyamos otros puntos finales, um, será la misma dinámica. Acabamos de llegar a este archivo y Aditya un recurso estático, simplemente lo usaría en cualquier lugar que queramos. Ahora ya casi terminamos. Yo sólo voy de pie guiado a través de dos cheques. Yo sólo voy a hacer una compilación rápida, asegurarme de que no rompí nada. Y no, cuando hagamos construcciones, vas a ver dos exitosos porque tenemos que proyectar. Por lo que siempre es bueno cuando ves que todos los proyectos fueron construidos con éxito, conocidos, fracasados. Um, Entonces lo siguiente que quiero hacer es asegurarme de que uno no va a haber un dinero neural lo. Así que tuve una experiencia una vez donde cuando entré al depósito, más trinchera alrededor de los dos proyectos al mismo tiempo, ambos estaban luchando por la importación del mar, y así uno no funcionaría tan y fácil de comprobar. Esta es solo la configuración de césped goto para ambos. Por lo que tenemos una configuración rubia para nuestro ap ya. Ya vemos, eso s aeropuerto. ¿ Está encendido ese número? Entonces puedo hacer lo mismo en el proyecto Blazer. Ir a propiedades, comprobar ajustes de césped. Y ya ves, es un número diferente. Sólo te estoy esparciendo el dedo del pie. Asegúrate de que sean números diferentes. Si, por la razón que sea terminan siendo el mismo número, Siempre puedes simplemente cambiar sake de un dígito y simplemente despegar bajo detenciones a las seis o lo que sea el caso. Muy bien, Así que lo siguiente es dedo del pie habilitar la doble ejecución. Entonces, ¿qué tiene que pasar? No. Cuando estás ejecutando los clientes siendo la aplicación blazer, la aplicación tú yo, obviamente tienes que tener la a p i corriendo en segundo plano para poder realizar realmente tus operaciones. Correcto. Entonces necesitaré dedo del pie mucho que cuando presione el inicio, así que hay que desperdiciar. Es que puedes poner uno como inicio de proyecto, Y luego, mientras se está ejecutando en tu barco indie, Moody siempre puede hacer clic derecho en el siguiente proyecto y ves debug en NBC's Vas a iniciar una nueva instancia que en realidad te permitiría tener dos proyectos en Bebel amarrados simultáneamente. ¿ Verdad? Pero voy a eliminar ese manual. Paso adelante. Lo que voy a hacer es ir a la solución Barcos de propiedades on, luego bajo iniciar un proyecto, ya ves, Proyecto de inicio único, que es lo que tenemos. No, pero ves inicio múltiple de proyecto el entonces. El genial de esto es que puedes cambiar el orden de que una startup más en Así que la de arriba comenzará primero. Y eso es lo que queríamos del FBI. Aprendizaje abierto, y luego el tú puedo entrar por el a P I el sabio inútil. ¿ Verdad? Entonces lo que puedo hacer aquí es ver acción y luego hacer clic en ella y luego decir empezar luego para este , pueden comenzar sin depurar, pero las ventajas estar en modo de depuración con ambos fuera de ellos es que si intento algo en el cliente y no funciona, puedo estar ambos a través del otro proyecto dentro de la vida útil fuera de esa sesión de depuración. ¿ Verdad? Entonces esa es una de las características geniales. Entonces cuando haga eso y haga clic en Aceptar, está bien. Y sólo voy a demostrar que sabes que es múltiple. Empieza un proyecto y solo hago clic. Empieza, entonces Lo que ves es un proyecto de auto de instancia que viene. Está bien. Entonces note que tengo dos navegadores y verás los dos, um, puertos funcionando. Entonces dices librería Tú me subo en Dwell. El FBI está tardando un poco más en llegar a. El punto es que estoy ejecutando ambos proyectos simultáneamente. Está bien, Entonces la gloriosa vista del futbol tú, quiero decir que nuestro proyecto APIS está en marcha. Entonces aquí está el proyecto del FBI. ¿ Aquí hay evidencia fuera del proyecto A P I, um, en modo de depuración en aquí está evidencia fuera de la sección tú I en modo de depuración. Por lo que una vez más, necesitas tener a los dos corriendo porque puedes probar la u. Y. Si el FBI no está corriendo en ese momento, puedes. Además, si i los ajustes donde dice lanzamiento bro er para que puedas ver en el FBI. No lances pros son porque, bueno, probablemente no necesites el bro o en ese punto, porque solo están probando el tú I. Así que no necesitas futbol en segundo plano cada vez para que en realidad puedas ir al ajustes de césped para el AP. Yo en cambio que el dedo del pie cae, entonces eso sólo lanzaría el bro o para el que lo tiene. Eso es cierto. Muy bien, así que eso es todo para este ejercicio de configuración. Siguiente parada implementará algunas configuraciones de línea de base de autenticación de usuarios. Tendremos que hacer algunos cambios a nuestro FBI. Por lo que eso estará en su actividad. Eso nos tendría rebotando entre los dos proyectos. Asegúrate de que todo esté abierto en ejecución. Andi, eso debería ser divertido. 38. Registro del usuario de la configuración (apI): Oigan, chicos, en este video, vamos a estar haciendo algún trabajo de preparación para nuestro cliente y nuestra funcionalidad de registro. Por lo que estoy trayendo arriba, justo como un recordatorio de dónde estamos y lo que queremos hacer es asegurarnos de que eso o función de registro funcione. Entonces recuerda la última vez que salimos del hogar, el log in bajo wrister todos se parecían. Entonces, ¿qué? Que fue ir adelante y agregar enlaces a ellos. Lo mismo que habíamos desplumado por ofertas y libros. Tenía un registro deportivo para el camino para la tala. Parpadeo en registro. En consecuencia, noté que se ven más normales. No, y un todo. Lo que queremos hacer es que cuando hacemos clic en registrarnos, navega dedo del pie alguna página que permite al usuario registrarse con solo un correo electrónico sobre una contraseña en. Entonces eso será central con la A P I encendida. Entonces este nuevo usuario estaría listo agitado en nuestro sistema. Por lo que estaremos haciendo algunos cambios a la A P. Lo estaré evolucionando un poco. Tenemos buena cantidad de trabajo, no lo hacemos ya, pero necesitamos un endpoint de registro y voy a agregar algo de validación de dedo nuestro objeto de transferencia de datos en espera de información del usuario. Simplemente estaremos haciendo algunas otras cosas en el medio para asegurarnos de que nuestros clientes gen manejen hablando con el registro en punto y en realidad tener un usuario registrado a través de aplicación de frente frente . Por lo que pasa a mi librería aplicación de librería, proyecto del FBI ¿Dónde puede el usuario DT Oh, y solo voy a agregar algunas validaciones aquí, así que voy a hacer que todos sepan que esto se requiere, es decir No envíes un solicitud sin el nombre de usuario. Está bien, también voy a cambiar esto de usarlo dedo dirección de correo electrónico en. Sé que eso va a causar algunos efectos de onda, pero la realidad es que vamos a estar usando la dirección de correo electrónico como nombre de usuario de todos modos, así que realmente no importa. Puede que no quieras cambiar esto la dirección de correo electrónico, pero voy a hacer eso sin embargo, también se puede agregar un dato, una notación aquí que es su dirección de correo electrónico y forzar que estás recibiendo un correo electrónico. Idris, en ese campo también me fui a poner son requeridos aquí para nuestra contraseña on. También podemos hacer algo así como especificar la longitud de la cuerda para que pueda ver, um, um, longitud de cuerda de notación de guitarra encendido. Entonces puedo calificar más esto dando un Lynn máximo. Entonces digamos que el moxie de Mamma Lynn que queremos para la contraseña sería tal vez 50 caracteres. Puedo dar el mensaje de flecha mensaje de error saludo es igual a y luego veo su bus. La palabra es limitada. Entonces digamos 15 quintas una dieta estricta. Por lo que 15 no hacemos a nadie tocando más de 15 personajes del transeúnte. Es decir, esto depende de ti fuera de curso, pero solo estoy haciendo esto, por ejemplo, enfermo. Entonces puedo decir que debe ser Vamos a ver 15 personajes es la marca de la longitud de muchos golpes es igual dedo del pie seis ¿verdad? Entonces puedo decir que tu contraseña está limitada a en Entonces puedo imponer marcador de posición para ver debe ser así. Podemos usar marcador de posición, señor, pero creo que el 1er 1 es para el nombre para mostrar el entonces. Por lo que este cero hizo el nombre de visualización uno serían las eslingas de lodo en el Día dos serían la lente mínima. Entonces si querías que fuera dinámico en lugar de fuera escribes el número aquí y después que cambiarlo. Se puede hacer algo así como uno está limitado dedo del pie bien, también, a un personaje para decir el pastor, Nuevo Putin está limitado a dos siendo longitud mínima derecha 6 a 15 caracteres. Entonces si cambias los números aquí por la longitud mínima de longitud de Marx, entonces automáticamente solo formatearías la cadena en consecuencia. Entonces eso es solo alguna validación que estamos agregando, um, se requirieron con el enlace de cadena que puedo. Supongo que puedo agregar un tipo de datos aquí para ver el tipo de datos en. Entonces tengo que calificarlo con el tipo de datos del genoma docks on. Hay una para contraseña, así que hay una para dirección de correo electrónico también, que puedas hacer humildad. Ligeramente círculo hacer puntos tipo de datos, dirección de correo electrónico. Cualquiera funciona. No tener mis objetos de transferencia de datos de usuario tipo off modificados. Voy a volver a mi controlador de usuarios en Este es el control que estamos usando para, ah, ah, cosas relacionadas con la autenticación. Entonces ahora mismo, así que hay ese error porque lo cambiaron de nombre de usuario a dirección de correo electrónico. Entonces no hay problema. Simplemente cambiaré ese pensamiento. Seguro que si está en otro lugar, va a aparecer. Pero lo que quiero hacer aquí es crear otro endpoint para las inscripciones, ¿no? No hay forma de tala. Pero quiero otro en punto para las inscripciones. ¿ Entiendes? Toe, haz eso encima del inicio de sesión y voy a decir pública tarea de desmontaje fuera de los resultados de opción de fuego en. Entonces lo hacemos y lo llamamos registro. No, tal vez recuerden en yo quiero esto de cuerpo también. Por lo que se me espera el mismo detalle de usuario entrando a través del registro. Como dije, no voy a agitar el proceso. Entonces si es que tienes más puntos de datos, que querrías que el usuario se registre conmigo el nombre, apellido y otras cosas tendrían otro detalle por solo el proceso de registro que estés esperando más del cuerpo que los pocos parámetros aquí. O simplemente podrías extender el detalle del usuario. Pero una vez más, los detalles tipo pueden ser muy específicamente o contexto. En este contexto, solo estoy pidiendo intereses con el nombre de usuario y contraseña. En lo mismo estará la tala. Entonces esa es solo la razón basada para que yo use el usuario GTO, los dos lugares otra cosa es que estoy a punto de cumplir con esta opuesta. Por lo que en realidad quiero que esto sea http post. No. Lo que pasa es que como hemos estado viendo el nombre apagado, la función casi no tiene cerveza ing. Cómo los controladores van a escribir la solicitud, el control es simplemente no se puede solicitar y ver si se plantea que estoy buscando el puesto, ¿ verdad? Lo que pasa es que porque ambos fuera de estos son post. A pesar de que los nombres de las funciones son diferentes, va a llevar a alguna forma de conflicto. Entonces hay ah, característica aquí que puedo usar donde puedo especificar las vialidades para que solo pueda ver donde especificamos carretera aquí arriba. Entonces este es el camino, y está viendo un p. corté al que lo controla. Puedo, por extensión, justo encima del controlador, ver caminos en, luego especificar que quiero que este sea llamado registro y luego especificar escribí aparecer de nuevo en DSA. Diga que quiero que este se llame registro. Está bien, entonces eso significa que la documentación no va a tener que distinguir, um rutas por nuestro tiempo en control de ambos fuera de ellos siendo post Así apuntado. No, hemos hecho una función por tipo. No, estoy teniendo que funciones son para terminar puntos del mismo tanque. Entonces la mejor manera de distinguirlos es en realidad darles nombres diferentes. Por lo que sabemos que este es el log in uno. Por lo que la persona si quiere iniciar sesión en la llamada ap slash usuarios slash iniciar sesión en el mismo para registrarse en su pasado datos apropiados en consecuencia. Entonces aunque los datos sean diferentes, no importa mientras pongan la ruta del coraje. Está bien, Así que acabo de poner algo de Cody puede pasar aquí y Kopytoff Pero es el núcleo regular que hemos estado poniendo. Todos los controladores, ya sabes, acciones. Tenemos el bajarse de la ubicación y que estoy despreciando o el nombre de usuario y contraseña de la transferencia de datos objetos datos entrando en diez centavos. También comprobando los errores, ¿verdad? En realidad puedo seguir adelante y usar algo fuera de los datos. Eso son 30 años del país. Bueno, en realidad, quiero revisar algunas cosas para, Así que si se pone este incendio, podemos suponer que es válido porque nuestras validaciones ponen dentro de nuestros detalles de usuario y nada debería estar viniendo vacío. Uhm, estoy recibiendo este fuego. No. Otra cosa que me gustaría hacer es usar la llamada El administrador de usuarios. Entonces voy a primero a crear un nuevo usuario. Por lo que el nuevo usuario es igual a una nueva identidad. Usar su servir identidad usuario es nuestra base. Utilizar una clase que nos sea dada por identidad. Entonces creo que tendré que esperar un poco el dedo del pie. Yo din t t Teoh mi ortografía. Ahí vamos. Usuario de identidad. Entonces vamos a construir un nuevo objeto fuera del tipo de usuario de identidad, lo que nos permite configurar el correo electrónico como dije, um, bueno, yo lo llamo usado el nombre aquí, por lo que realmente no importa. Nombre de usuario. Está bien, así que estoy configurando el correo es usándolo. También voy a establecer el nombre de usuario como el nombre de usuario a medida que envían el correo electrónico. Perdón, que estoy empezando en mi variable usándolo. Dije que puedo conseguir colillas confusas. Seguro que se lo puede apreciar. El hecho es que la dirección de correo electrónico es la misma que usarlo. Por lo que sólo estamos agitando la dirección de correo electrónico tanto en el correo electrónico en el nombre de usuario Space aan den. De verdad entrada. Esos son todos los datos que estamos recopilando. Por lo que ves, tener otros puntos de datos en realmente puedes extenderlo dedo del pie, tener más si necesitas dedo del pie, así que eso está bien. Siempre puedes revisar mi curso a toda velocidad en un árbol, pero un desarrollo y verás cómo podemos extender eso al usuario. Pero podemos seguir adelante aquí entonces. Nuestro guardar nuestros resultados es igual a Andi. Déjame sólo ver qué es Pero esto primero. Perdón por eso. Tenía la palabra nueva en lugar de disparar mi Pero hasta ahora resultados es igual a un peso en. Entonces voy a llamar al administrador de usuarios y así recuerda, vamos a añadir administrador de usuarios ya inyectado. Muy bien, así que en el administrador de usuarios, alguien a quien llamar al administrador de usuarios. Entonces se va a exponer un Fortunati llamado Crear un Sink, que nos permite pasar en un usuario de identidad algunos con el párroco puede recién creado en en en objeto de usuario. Andi, también puedo pasar en la palabra pasada. Entonces cuando haga esto, en realidad manejará el análisis para mí. Por lo que el pastor habría venido como el texto plano que la persona tocó en el cuadro de texto . Pero entonces esta función se va dedo del pie manejó la inserción sobre la piratería en todo. Para mí, hicimos algo así y peor, comiendo antes a los usuarios? No. Después de eso fui a ver si no resultados atracados Sucedido eso estoy revisando. ¿ Falló esta operación? Voy a ver En primer lugar, me fui a amar una flecha para decir que el intento de registro de usuario se siente bien. Pero también quiero amar Las razones de ello son las posibles razones de los fracasos. Ahora en lugar del resultado, um, objetos, hay, ah, menos fuera eros alguien para decir algo como para cada Andi, puedo guardar ira error de ensayo en resultados atracados y ya ves los errores de lista o sabía que innumerables. Se trata de una colección fuera de Eros. Entonces si hay más de un error, todos estarán ahí en. Entonces voy a registrar una línea por error, alguien que diga más tiempo, no la quiero en entonces la ubicación. Y entonces solo estoy gon cortando comiendo No, la cancha de puntos de error y la descripción del aire. Por lo que dentro del error, los innumerables errores off dentro de cada objeto aéreo para conseguir una cancha sobre la descripción por qué hay un error. Está bien, así que solo estoy registrando todos esos encendidos. Entonces puedo hacer nuestro error interno de retorno, Pero en este punto, no creo que necesite amar nada más. O tal vez lo que puedo hacer es en lugar de azotar a este par aquí, puedo amar todo fuera de la época que pertenece al fracaso en. Entonces simplemente regresa en el error de participación con ese mensaje de registro encendido. Entonces llámala un día. final de Sutherland repitiendo cancha y estoy haciendo el mejor uso. ¿ Qué tenemos en su lugar, verdad? Entonces una vez más, si no fue exitoso, estamos recibiendo todos los errores y estábamos registrando cada uno en su propia línea. Sólo estoy cosquillas espacios vacíos encendidos. Entonces solo estoy devolviendo un interno o con una declaración de manta para decir este nombre de usuario campo intento de registro derecho también probablemente debería incluir una gran cantidad de tierra para ver intento de registro de usuario . Entonces déjame ponerlo rápidamente. Tallos todo bien para nombre de usuario. Está bien. Bien. Entonces eso es todo para la tala. Entonces no he terminado. Se pone una cosa más es que solo estoy revisando si fue malo. Entonces esto sigue aquí Porque necesito dedo del pie tener un retorno final. Por lo que el regreso final estará encendido. Está bien. Para que pueda regresar. De acuerdo, entonces. Andi, sólo voy a poner en un nuevo objetos genéricos. Puedo ver nuevo Andi Este nuevo objeto simplemente no tiene un resultado que tuvo éxito, que en ese momento debería ser cierto. Porque si fuera hasta donde hubiera quedado atrapado en esta Onda podemos querer Así que otra cosa que quieres decir querer buscar en hacer es por la aerodinámica interna. Para este control, Lee probablemente pueda expandirse un poco que cuando estás devolviendo los 500 probablemente incluyas algunos errores son razones de la flecha para que quien esté llamando a la A p puedo, ya sabes, obtener algunos comentarios náufrago el campo de intento. Entonces entré en modo debug y tengo aquí la ventana para el FBI. Entonces si aún tienes el motivo del proyecto de puesta en marcha. Simplemente puedes enfocarte en la ventana del FBI donde puedes cambiarla por no y volver a cambiarla más tarde . Pero solo me estoy centrando en todo el día endpoints look, así que sepas que porque hice la ruta ves que bajo el sexo del usuario y tú tienes ambos posts y tienes un ps slash user slash register on gps slash user slash login. Si tu documento siente el Señor, eso significa que probablemente no te pusiste en la ruta y tienes ah, conflictos. Slager no está cargando. Entonces eso es un decir que tienes un conflicto. Porque swagger en sí está teniendo, ah, difícil descifrar lo que escribió es cuál, porque no especificaste, ¿ verdad? Así que vamos a probar este punto final rápidamente en usted Vea aquí dónde se siente automáticamente en lo que se espera. Es su dirección de correo electrónico se espera en la carga útil. Y ese es un ejemplo en cadena de contraseña. Está bien, así que sólo voy a usar la función de comercio dicho aquí, así que sí, sabemos cartero encendido. Te voy a mostrar cómo probar con sluggers. Pueden ver que te lo pruebes. Entonces puedes poner en usuario como ejemplo dot com. Voy a usar eso en. Voy a poner en. Yo quiero dejar arroyos. Entonces recuerda que pusimos en alguna validación donde la contraseña más necesita cierta longitud, así que intentemos que ejecute. Muy bien, Así que recuperamos nuestro error en ver aquí donde? De acuerdo , sólo nos está dando los 500 en esto. Simplemente dándonos una remisión a ese genérico. Entonces, como dije, probablemente quieras dar un poco más de detalle en eso. No obstante, si tu documentación es sólida, quien esté desarrollando encima el 80 debería poder mirar con el dedo del pie y ver exactamente lo que se espera. Entonces aquí estamos viendo, necesitamos usar un objeto DT o tan custodiado totalmente que está esperando el objeto de detalles del usuario entonces. El detalle adicional es que el objeto de detalle de usuario tiene en el fanático más barba string email on password, con la validación de poner donde posiblemente entre 15 y seis caracteres de largo, ¿no? Por lo que el desarrollador consumiendo tu a p tengo la misma responsabilidad de pasar por la documentación y corte en consecuencia. Entonces vamos a probarlo de nuevo solo para finalizar esta licencia un tanto usar para P en SWR el de intentar eso de nuevo encendido. Entonces cuando miramos, vemos que estamos volviendo o 200 yson mensaje exitoso. Está bien, si le echo un vistazo al archivo de registro, entonces sólo veremos que tenemos el primer llenado audible, el intento, y luego tenemos todos fuera de los errores. El password requiere esto el pastor en eso en todo lo que estaba mal con la contraseña y luego lo último que lo dice campo. Muy bien, Entonces funciona la tala y se ve qué? Al igual que lo que esperamos? No volver a nuestro proyecto. Voy a hacer ah pocas modificaciones a lo que tenemos en nuestro Blazer hasta ahora. Entonces me voy del dedo del pie, crear una carpeta nueva, y voy a llamarla modelos desde el simple clic en agregar nueva carpeta en lo estoy llamando modelos. Muy bien, vamos, entonces. El primero que estoy poniendo en esta carpeta es una nueva clase a la que voy a llamar modelo de respuesta. No. Si es una cosa que hemos visto es que cada respuesta básicamente tiene algo que decir. Ya sea que fuera exitoso, este podría ser el cordón o podría ser una bandera. Entonces lo que voy a hacer es decir algo así como, quiero una propiedad que va a ser off type bull on. Este va a ser un éxito. Por lo que esto va a almacenar donde el auto fue exitoso o no encendido. Entonces voy a tener otra propiedad de tipo string. Este va a ser por tal vez error. Muy bien, en ese entonces, tengo una propiedad más. Andi, éste va a ser para contenidos, ¿verdad? Por lo que siempre estarás obteniendo respuestas ya sea con un mensaje de error son contenido o algo así , pero siempre podremos determinar el éxito. Entonces este va a ser un tipo de clase más genérico que vamos a retrofit son respuestas de repositorio basadas . Entonces correcto, no se basan repositorio. Cada vez que llamamos a un punto final, realidad es sólo girar una derecha verdadera o falsa. Pero en el caso apagado así, hablando cuando voy a estar usando esta base dicen que esto es lo que vamos a usar, que es crear aunque pueda parecer, um, raro. Pero no nos crucemos nuestros cables cuando estamos llamando a un post que vamos a usar crea. Por lo que tenemos la opción de tener una función de post genérica que solo llamará. Pero entonces ya vamos a estar básicamente repitiendo este cordón dentro de ese post genérico . No quiero tener que funcionar con eso. Entonces lo que estaré haciendo es usar el modelo de respuesta, cambiar estos viejos de lingotes en remolque. Solicite tipos, ¿verdad? Disculpa modelo de respuesta tipos de devolución en. Entonces cuando evaluamos lo que recuperamos, entonces podemos formular una respuesta más detallada que simplemente verdadera o caídas. Por lo que lo haremos cuando regresemos y empezemos a configurar la funcionalidad sobre el registro para nuestra aplicación blaze. Pero entonces estaremos retroadaptando sobre reportes basados, respuestas de historias con o modelo de respuesta conocido. 39. Formulario de registro del usuario del usuario de la: Oigan, chicos, bienvenidos de nuevo. Y estamos en parte para compensar la funcionalidad de registro para nuestra aplicación de librería . No, acabamos de montar el A P I toe tener nuestro registro y punto, y no va a estar despegando el lado blazer de las cosas del dedo del pie. Tener un formulario de registro en poder comunicarse con la A P I. Así que esta aventura comienza en mi archivo de endpoints estáticos. Dónde están agregando un nuevo endpoint solo para el registro, Así que se va a registrar en punto. Entonces se va a basar euro slash monsieur a p i slash use air slash register. Entonces recuerda que esa fue la forma en que formateamos nuestra uhm en pointe para el registro en o controlador de usuarios en igual que una escuela más fresca de vuelta. Nosotros sí dijimos que la ruta siempre va a ser un controlador PS slash encendido. Entonces podemos especificar otra ruta en la parte superior de la realidad para uno. Entonces es un p I slash usuarios slash registro. Muy bien, así que eso está sobre punto final estático para una destrucción. Lo siguiente que voy a hacer es configurar Ah, carpeta de modelos en nuestro sabio. Entonces, ya sabes, en la A P. dije dónde, pero llamaremos objetos de transferencia de datos estaban en la interfaz de usuario idea de lo que llamas modelos de vista porque sus vistas en entonces tienes modelos fuera de los datos que debe estar representado en los puntos de vista son vistas. Modelo cumple con ese crédito a tu derecha. Perdón. Me pregunto si hago clic en clase debí haber dicho carpeta nueva y luego en la carpeta. Entonces vamos a crear directamente cualquier modelo de foto call y luego en esta carpeta vamos a ir al anuncio y luego a clase y luego voy a llamar a este modelo de usuario. Está bien, pero luego dentro de fuera modelo de usuario, me voy de dedo tengo dos modelos, así que sí, conozco sin nombre ese modelo de usuario. Voy a dejar eso en blanco. El nombre del archivo se usará un modelo, pero realmente quiero tener el modelo de anhelo encendido. También voy dedo del pie tener modelos de registro. Acabo de poner largo y modelar su desde ninguna embarcación. Tendré registro para ello. Simplemente hay límites el modelo de registro. Está bien. No hay modelo de registro va a ser un enfermo Ali tener los campos que necesitamos para registro los cuales usted sabe que están usando contraseña humana en todas las validaciones a las que la interfaz de usuario deberá adherirse. Entonces en realidad sólo voy a ir a usar su necesidad para ti, porque lo hicimos. Todo ese usuario te necesita. Tenemos la dirección de correo electrónico. Tenemos la contraseña, alguna disciplina para copiar todo esto. Y luego fui a venir a nuestro modelo de usuario en entender pegar todo eso ahí dentro y luego incluir cualquier biblioteca faltante. Muy bien, entonces, entonces, por la contraseña, en realidad voy a dedo Do ah, comparacion. Validar también para la contraseña. Por lo que agregué el campo adicional, que llamo confirmar contraseña en. Sólo voy a poner un nombre para mostrar aquí para la dirección de correo electrónico. Por lo que el nombre para mostrar básicamente dice lo que Hadi quiere que se muestre en la pantalla. ¿ Cuál es el nombre fuera del campo cuando se muestra al usuario? Entonces es direcciones de correo electrónico ni espacio. Muy bien, así que estas que las anotaciones juegan un buen papel en espera, se estructura una interfaz de usuario. Cualquier hoyo. Déjame que te acompañe. Por lo que sabemos de requerido el tipo de datos aquí es contraseña. Y ponemos en nuestra validación para el pasado donde lleva eso entra y luego no lo hacemos. Aquí tengo otra contraseña de tipo de datos. Ésta está confirmada. Contraseña en éste está viendo comparado el valor fuera de este campo con esa vista. Por lo que es solo una linda comparación que va a poner porque cuando la persona se está registrando, quieren dirección de correo electrónico y luego comparar a los dos transeúntes, asegurándose de que sean mucho. Ahora, después de haber configurado nuestro modelo, necesitamos la página real que se va a aplicar el dedo del pie. Por lo que para crear una nueva página o un nuevo componente, necesitamos ir a nuestra carpeta de páginas. Andi. Por lo que podemos poner todo en la raíz porque en lo que se refiere, una vez que el nombre de la página está ahí y está registrado dedo del pie tienen el nombre y vimos algo letra con índice, donde con el en signo de página slash que esos significa hogar. O si miras el pronóstico del tiempo, los que estaban ahí, datos de la búsqueda bajo contador,ya sabes, ya sabes, viendo la slash Fitch Gate y el contador de Slash para que pudiéramos ponerlo en la raíz. Pero no me gusta todo fuera de las páginas, ya sabes, solo sentado ahí y gobierna. En realidad soy lo que va a crear otra carpeta dentro de fuera de las páginas. Esta vez en adelante, voy a llamarlo usuarios porque quiero solo páginas relacionadas con el usuario dentro de esta carpeta, no un celular, y es una parte realmente jugador. Mientras la parte sea, son así que déjame mostrarte a lo que me refiero. Por lo que vamos a añadir un nuevo componente blazer directamente. El carpeta Goto agregar. Se puede elegir nuevo artículo a su clase, pero queremos ir a web, y queremos un componente de maquinilla de afeitar encendido. Entonces éste va a ser el registro correcto. Por favor use el capital son porque si usa un común son te dará un problema. Solía entrar y tenía un problema. No sé si fui yo o futuro universal, pero esa es solo mi recomendación. Usa mayúsculas cuando estés creando tus componentes de reserva. Muy bien, así que este es registro. Hacemos click. Agregar Onda. Después de agregar este discurso, sólo voy a dedo del pie poner la anotación no en la parte superior para hacerle saber sus raíces, por lo que es raíz está en el registro de barras, derecha. Entonces a pesar de que está en una sub carpeta, una vez que pones um en cada ref para ir a registrarte como lo hicimos en la barra Nuff en el menú suficiente. Él buscará ese componente y encontrará que es yo solo quiero diseñar rápidamente o el formulario de inscripción. No tendrá ninguna cordura de forma, porque se necesita crear en servicio de autorización antes de que podamos hacer que se tick. Pero vamos a ocuparnos de los diseños. Sólo estoy quitando eso. Yo salgo de la cancha aquí, y luego voy a usar algunas ataduras cuatro, um, clases. El estilo. Por lo que botas hasta cuatro viene construido en blazer de remolque. Um, si quieres incluir a otros. Siempre puedes hacer clic derecho en Gautam Believe Gestionar o ninguna otra biblioteca del lado del cliente. Y entonces eso traerá un cuadro de diálogo que pierdo la búsqueda de otro, um, clientes que biblioteca, como tal vez quiera material o algo así en. Entonces solo puedes instalarlo, y lo pondría dentro de la ubicación retardada de agua que tienes ahí, verdad? Entonces si eres quieres usar algo que no es torería estaban a la cabeza. Estoy usando bootstrap. Si no estás tan familiarizado con bootstrap, siempre puedes ir a obtener bootstrap dot com en lo último es 4.4 en día tener una excelente documentación. Entonces todo lo que estoy a punto de hacer, puedes encontrar algún lugar aquí a un costado. Entonces el componente que estoy a punto de usar toe help estilo mis páginas, la tarjeta. Entonces busco una tarjeta, y esto es básicamente simplemente que estamos usando, ¿no? Entonces cuando tengamos una tarjeta, le dará una frontera nacional, ¿no? Y luego se puede ver cómo pueden verse las diferentes tarjetas. Entonces déjame solo empezar con este, y solo puedo copiar, porque cuando estabas escribiendo HTML de todos modos, solo voy a ir a ritmo de eso. Entonces por eso estoy empezando de un diff con la tarjeta de clase encendida luego dentro de la tarjeta, quiero un título de auto y tanto ajustándome a C H. Tal vez tres, tres, no 13 en darle una clase off card dash title derecho en . Después fui a verla. Sólo, uh, no. Está bien. No, dentro del cuerpo iban dedo del pie tienen la granja. Por lo que blazer nos da algunos componentes. Algunas, ya sabes, etiquetas especiales. Por lo que siempre aberracional. Pero entonces tienen a veces que podemos usar Así que cuando se trata las formas. Si acabas de abrir el pueblo y empezar a escribir el formulario de palabras, empezaste a ver algunos componentes diferentes que te regalan viejos de la caja para ayudar con los formularios. Por lo que uno que tienen es editar forma sus anotaciones amargas mientras que los tipos de entrada de datos en estos pueden proporcionar algunos puntera de enlace especial el modelo que está en uso. ¿ Verdad? Por lo que aún no he llegado a la parte modelo, pero solo trabajo conmigo. Entonces voy a empezar al editar formulario en que abra y cierre eso en luego dentro fuera de la lista de atributos de formularios de edición . Tienes modelo. Entonces modelo significa a qué clases de datos se vinculan este formulario. Sabemos que creamos el modelo de registro para este propósito escribe Sólo voy a decir modelo de registro. Eso es qué? Tu dedo del pie de bandas Justo en. Entonces tienes algo de acción. Segundo, digamos en un nuevo inválido, Enviar versus el. Enviar versus en válida enviar para que puedas elegir hacer algo Si alguien envía datos inválidos Ah, puedes elegir hacer algo cuando la persona algo está todo junto sin, ya sabes, hacer cumplir validaciones, o simplemente se puede decir cuando se hace una presentación válida. Entonces lo haré en la validación de cursos relativos a las validaciones que se alinearon todos dentro del modelo que se está utilizando. Que sería en nuestro caso, se requiere la dirección de correo electrónico padre en eso. ¿ Contraseñas? Mucho. Todo bien, por lo que en válida presentar. ¿ Qué quiero hacer? Puedo llamar a una función aquí. Segundos Un registro de mango. Está bien, Así que ha sido dedo del pie. Conoce que vas a ver Líneas Rojas porque es tu creador. Representación fuera de dos cosas que aún no existen. Pero nos pondremos a eso. No hay problema. Entonces en la granja, lo que quiero incluir serán anotaciones de datos, validador sobre validación. Resumen. Muy bien, Entonces estos dos componentes se sentarán y vigilarán y se asegurarán de que se cumplan todas las validaciones que se esbozan. No. Voy a empezar a construir sobre la finca. Entonces si quiero decir, sé que debes saber cómo funciona la granja, pero si quieres saber cómo pueden verse los formularios bootstrap, siempre puedes volver a la documentación, mirar formularios y luego ves ho para invocar formularios bootstrap para que se vean bien y duerman en interactivo así. ¿ Verdad? Entonces tienes tu forma plática, sin embargo forma encabezada que no necesitamos eso. Pero entonces cada control iría por dentro. Ah, formar grupo con una etiqueta en la entrada. Andi. Bueno, si quieres tener algo ahí, Correcto. Entonces el sentido es que necesitamos un grupo de formularios en cada entrada. Debe tener el control de formulario de clase. Todo lo demás está dentro o control. Um, así que vamos a volver. Vamos a crear nuestra primera entrada para nuestro correo electrónico. Por lo que he formado grupo. Tengo la etiqueta para correo electrónico en Di Di Di. Por lo que esos demasiado en las etiquetas es dirección de correo electrónico en. Entonces ves que tengo mi control de formulario de clase. Pero entonces tengo algo aquí que va a estar de pie goto que afuera une valor dash igual. Entonces está diciendo aquí con aviso este es texto de entrada, ¿ verdad? Entonces si quieres entrada de texto, idiotez, entrada, texto. Um, lo que esto está diciendo es si bueno, cuando se está enviando el formulario, o datos siempre que tenga datos interpretados, ¿a qué parte del modelo debo vincularme? Correcto Así que estaríamos vinculantes toe registro modelo dot email, causa esa es una sensación que tenemos que tanto es la dirección de correo electrónico. Está bien, así que solo voy a replicar esto para todos, y luego voy a crear un modelo, y luego se ven valores de bodega de la mente. Entonces en este momento tenemos un montón de errores, y tenemos el mensaje de validación por significado Sea cual sea la sensación que ponga aquí, se va a imprimir el dedo del pie este mensaje, ese mensaje de error que surgiría en caso de que la validación no sea compañeros . Está bien, entonces, no, tengo mis tres fusibles fuera para dirección de correo electrónico para contraseña y tengo contraseñas confirmadas. Se puede pausar un video. Quítate eso. Lo que realmente la entrada puede simplemente copiar y pegar el correo electrónico. Se entiende el respectivo I ds. Está bien, Um, fuera de curso. Nunca va a tener que sentir de la misma idea en la misma página. Es entender. Para cambiar uno para confirmar la contraseña justo en. Asegúrese de especificar el tipo igual patrocinadores. Por lo que puedes especificar tipo igual a dirección de correo electrónico aquí, pero ya tenemos la validación corriendo para hacer cumplir que debe ser anemia. Lecherosa. De acuerdo, así que eso sería amable ya sabes, doble trabajo, pero en asegúrate de poner tipo igual a spots palabra porque, um, no quieres que esté escribiendo en texto plano ahora mismo. Lo más importante que va en cualquier formulario son nuestros botones de envío. Simplemente tengo un tipo de botón igual. Presentar clase el, luego dentro de esa manzana bt nbt y dash primary cada uno y dash block. Por lo que una vez más, siempre se puede revisar la documentación de bootstrap para ver los diferentes botones que tienen sobre lo que lo verían. Por lo que este es un botón primario bt y dash derecho primario que llama te da este botón azul . Entonces, cualquiera que sea el color que quieras, puedes incluirlo en. Se puede desplazar hacia abajo y ver las otras propiedades. Entonces sepan que hemos hecho la parte de diseño fuera de la forma que necesitamos dedo del pie. Empieza a escribir algo de la cancha. Entonces vemos aquí todos estos leones rojos. Tenemos algunos errores. Entonces ahora mismo lo que tenemos que hacer es especificar en qué modelo de registro está. Modelo de registro es una clase que tenemos en la librería de espacio cercano. Tú, yo no modelo. Entonces la cosa es que en realidad podemos poner declaraciones de uso dentro de nuestros componentes aquí mismo . Porque necesito decirte que estoy usando esta biblioteca para algunas cosas. Justo en. Entonces adentro fuera de mi cuerda. Mi bloque de núcleo. Puedo empezar a escribir cancha. Entonces lo primero que tengo que hacer es crear estoy en objeto apagado. Bueno, tipo de registro moderno en porque lo llamé modelo. Necesito conocer el nombre aquí. Entonces déjame explicarlo rápidamente. Entonces voy a ver registros privados sobre el agua encendido. Entonces tengo que llamarlo del mismo nombre o lo que sea cerca de mis colegios. Cualquiera que sea el nombre que tenga que poner aquí y luego después de inicializar, es igual a una nueva instancia off precesada en modelo. Entonces para hacer las cosas más simples, ¿Podría haber llamado a esto solo modelo bien? O lo que yo quisiera dedo del pie. Y entonces sólo tendría que asegurarme de que digo modelo es igual al nombre fuera del objeto. Está bien. Es decir, mira, esa línea roja se ha ido porque no, el componente sabe que eso existe también para nuestros encuadernamientos. Necesito saber, Diga que el modelo se atrapa, luego poner en el campo apropiado. Algunos encuadernación en protege el modelo. Esa dirección de correo electrónico contraseñas, una madre, esa contraseña. Andi, confirma postura para monitorear eso. Confirmar contraseña. Muy bien, ve bien para nuestro mensaje de validación. Tenemos que hacer algo un poco más elegante. Cuando fui a ver a Scient para involucrar resúmenes acordes, luego ponerlo en un corsé en eso por dentro. Estas razas están dentro de los paréntesis tienen otro par de enfermedad de los padres que es como indicador, como una pseudo función o una función de línea. Pero luego fui a referirme triste mi lambda buscando flecha. Y luego digo modelo dardo dirección de correo electrónico. Está bien, en DSO voy a hacer eso por todos los demás. Por lo que el mensaje de validación para contraseña estaremos listos. Teoh modelo no contraseña en los mismos cuatro. Confirmar contraseña relativa para confirmar contraseña. A continuación, necesitamos dedo del pie. Um, va a crear esta función derecho 100 de registro. Entonces no. Dentro fuera de la cancha de la misma forma que necesitábamos crear nuestro modelo. Necesito ver a un privado Tú cantas el US aan den handle y luego una vez que crea esa mirada en espera, esa línea roja desaparece. Está bien. Perfecta elevarse continuando. Aquí necesitamos saber qué vamos a hacer cuando alguien se registre. Y lo que vamos a hacer es,ya sabes, ya sabes, en realidad llamó a un P I y hacer todo tipo de ofensiva. Por lo que necesitamos realmente construir funciónelo, y no lo voy a hacer aquí. En cambio, voy a crear un servicio que va a manejar todo fuera de nuestras operaciones bestia de autenticación . Entonces como esta costumbre, vamos a ir a contratos, hacer clic en agregar ons, crear una nueva clase o interferir lo que sea y estamos llamando a esta. Yo repositorio de autenticación que en luego dentro de esto, solo me aseguraría de que esté viendo interfiere y la clase adentro off. Esto necesitamos dedo del pie tener, ah, función que se va dedo del pie ser con el registro. Entonces este va a ser una tarea fuera empate Bull on. Se va a llamar registro cuando tomar el modelo de registro ons usuario como los parámetros. Correcto. Entonces ese es nuestro contrato en. Entonces lo voy a implementar, alguien para bajar al servicio click derecho, crear una nueva clase llame a este repositorio de autenticación click. Añádase, luego hacemos algo de herencia. No voy a usar la postura de baster para las operaciones relacionadas con el usuario. Porque, como se puede Bueno, vamos a retroceder un poco. Pero los repositorios base fueron diseñados para hacer frente a clases específicas Justo en Entonces. Tengo modelo de usuario y y tengo modelo de registro, así que tendría que crear clases dispares son mucha enfermedad divertida. Tal vez use la parte superior de otoño por aquí dedo del pie y así sucesivamente. Entonces solo estoy tratando de mantenerlo simple en solo estoy creando otro positivo, muy llamado autor. Depositario. Tan sólo para seres de autenticación cosas donde no tiene que llegar al escenario fuera de cuervos, operaciones y aguantar. Déjame seguir adelante e implementar mi interfaz. Por lo que incluir cualquier biblioteca faltante en implementar, interfiere. Y luego vamos a escribir nuestro núcleo que va a hablar de dedo sobre el FBI, alguien para empezar inyectando a mi cliente http en remolque. Este brazo, esta clase. Perdón. Por lo que en el servicio. Por lo que yo m PIB especie fábrica on. Por si no recuerdas nada de esto, lo hicimos cuando estábamos haciendo el repositorio basado. Cuando acabas de volver atrás, verías que en realidad somos adictos que parecen objeto, ¿ verdad? O eso parece, um carajo turd. Muy bien, ya basta de eso. Entonces sigamos adelante. Por lo que ahora necesitamos inicializar. Es un ajuste mucho. Rápidamente. Aborda esto. Está bien. Dijo una cosa. Fui por allá, ¿recuerdas? Yo lo hice. Está por ahí en. Por lo que sólo necesitamos el constructor para nuestra historia pasada dicho intercambio la copia del nombre y pegar un cambio en él. Por lo que estoy inyectando al cliente en nuestro repositorio. El tribunal aquí va a parecer en realidad bastante similar dedo del pie dicen el núcleo de publicación que acabamos de quitar eso donde algunos publican tribunal en nuestro repositorio basado. Está bien. O crear. Entonces no estamos en ninguna parte haciendo oposición. En base a las instrucciones en DSO. Muchas de las cosas se verán similares, pero solo empecemos todas juntas. Por lo que lo primero que queremos es nuestra quest off type post en la URL que estará pasando es en puntos punto para registrarse en puntos. Y recuerda, acabamos de crear que cuando empezamos con la bestia Ural para el registro dejó fuera esa barra final Sanders lo puso mejor seguro que lo siento. Está bien, así que vai solicita. Muy bien, así que creamos nuestras peticiones. Entonces lo vamos a llenar con el contenido, que va a ser nuestra versión serializada fuera del modelo de usuario que está entrando fuera de curso. Seguimos adelante e incluimos cualquier cosa que falte. Muy bien, entonces, hasta ahora, la mayor parte parece copiar y pegar desde el create para el repositorio de bestia Beiring . Los parámetros reales entrando, ¿verdad? Es la misma cancha. Por lo que se lo serializamos a Jason. Entonces uso mi puntera biblioteca cliente, creo en el propio cliente http en, luego voy a enviar hacia arriba Ah, solicitud. Algunos sólo quieren ver http. Mensaje de respuesta Respuesta es igual dedo del pie ahí esperando fuera esto y este es nuestro peso. Entonces después de mí, esto es pensar, entonces. Entonces en el creador en el factor que creamos el repositorio basado, lo que hicimos fue comprobar una respuesta específica llamada en cada punto. ¿ Verdad? Entonces la cosa es en realidad puedo decir algo así como regresar porque estoy devolviendo un lingote. Simplemente puedo ver retorno respuesta punto es éxito status escuela porque sabes que sus tableros de estatus que significan éxito por lo que simplemente podemos regresar eso Así que o es cierto nuestros padres con éxito son locos porque nuestro A P I para el registro no es devolviendo cualquier otro dato valioso. Eso es lo que necesitamos para completar el registro o cualquier cosa. Solo necesitamos saber qué es exitoso o no. Entonces sepan que configuro mi servicio para la autenticación o mis repositorios para la autenticación tienen que ir a sobresalir a punto CS y hacer representación fuera de estos derechos. Entonces dentro de configurar servicios, necesito decir servicios pensamientos anuncio H D T B clientes tienen que asegurarse de que lo hago bien , porque, ya sabes, estamos usando el tema dp clientes en eso. También voy a añadir transitorio mi repositorio de autenticación ojo y autenticación o carteles para que podamos inyectar este servicio donde lo necesitemos. Entonces ten en cuenta que lo hemos hecho y solo puedes asegurarte de tener estas líneas antes continuar. Ahora que hemos inyectado, creado son fuera del repositorio inyectado en nuestra puesta en marcha ahora de nuevo en o es un componente, podemos inyectarlo en el propio componente. Tan bueno, voy a hacer referencia al contrato, Así que tengo que usar los contratos de biblioteca en entonces puedo inyectar. Yo repositorio de autenticación sobre eso. Yo sólo voy a llamar al objeto fuera de re pool. Entonces justo ahí está nuestra inyección de dependencia directamente en nuestro componente blazer, ¿ verdad? No, podemos empezar a escribir algún tribunal manejó las inscripciones. Voy a decir por la respuesta vire. Todo bien es igual a on. Simplemente espero el resultado de nuestro off re tire acoplado en. Entonces tenemos registro. Y luego donde nos estábamos registrando Bueno, sólo estamos durante un nuevo usuario en forma de modelo de registro el cual está entrando a través nuestro objeto llamado modelo on. Entonces hago un semi colon. De acuerdo, entonces puedo tomar una acción si la respuesta es buena, no son así puedo decir si causa respuesta entonces series de respuesta regresando un lingote. Nosotros sí dijimos que necesitamos un lingote en segundo, ver si respuesta entonces quiero navegar lejos, así que para alejarnos, necesitamos otra inyección y eso es en forma del gestor de navegación. Entonces solo voy a volver a la cima y luego voy a decir inyectar ahora el manager de hijo de engranajes que conozco justo en llamar. Es amor mío. Está bien, entonces no lo hagas aquí. Si la respuesta es exitosa que voy a decir me encanta manager object dots navega a en entonces. Bueno, si la persona acaba de registrarse, probablemente podamos navegar a la página de inicio de sesión. Está bien, pero no hay página de anhelo. Es Soto prevenir en zonas yo solo navego a nada. De acuerdo, No son el hogar más bien en entonces lo contrario significaría si la respuesta llegara hasta donde fallara . Um, lo que voy a hacer es crear una sección donde voy a mostrar un mensaje de error para poder volver. Aparecen a la tarjeta. Puede estar justo en el padrón. No, encendido. Entonces. Hacer algo así como una alerta dar. Por lo que las botas tienen nos da alertas tan con clase, cuasi alerta on. Entonces puedo ver alerta Dash jer. Entonces eso me da, como un rojo, um, dar o área. Y luego dentro de eso, puedo tener un tirón p, que es algo así como algo salió mal con el intento de hijo de registro. Está bien, pero entonces no quiero que esto se muestre todo el tiempo. Todos los derechos realmente lo están haciendo Lo que voy a hacer es crear otra variable en lingotes DSI es campo. Se cae sobre waas, luego algo de ajuste. Esto, sin embargo, cae primero porque una vez que una página carga cualquier valor que haya ahí dentro, va a las partes del dedo que valoran. Por lo que quería ser falsa primero. Pero entonces, si la respuesta si no responde si es verdad, entonces nunca nos escapamos. De lo contrario quiero decir que su campo es igual de dedo verdadero. Está bien, y luego arriba. Puedo poner su declaración aquí mismo en el HTML. Yo sólo puedo decir ese letrero. Si lo siento, déjame intentarlo de nuevo. Puedo ver ese letrero si es campo, luego exhibir las cuotas. Muy bien, Entonces lo que esto hará es evaluar el valor fuera de la variable y luego mostrar la diva en consecuencia. ¿ Verdad? Entonces? Bueno, esto es Dame una era. Déjame ver que estas áreas están diciendo ambas que no existe en mi cuerpo. Ah, lo siento. Por lo que esto necesita ser declarado fuera de los registros on handle. Lo estoy declarando global a toda la vista, ¿no? Entonces cambiamos su estado una vez que tratamos de dedo manejar el registro. Entonces si este lago se siente, entonces demostramos que algo anda mal. con el con el registro, hijo. Está bien, así que vamos a probar la sal. Voy a volver al control de mis usuarios y poner un punto de descanso en la registradora solo para asegurarme de que estamos golpeando el lugar correcto en. Entonces sólo voy a entrar en modo de depuración. Muy bien, entonces estamos en nuestra solicitud. Voy a registrarme si trato de presentar la misma hora, me dirá que la contraseña y los pastores confirmados no hacen mucho, y eso es porque es una especie de auto sentimiento. Algunas pruebas, um, fecha también, ves, es que está funcionando el trabajo de validaciones. No puedo seguir adelante hasta que se signifique todo, ¿verdad? Entonces lo que voy a hacer saber en realidad está listo para alguien en. Estoy usando un passer predeterminado que está estar en Sina sensiblemente digno uno en. Tratemos de presentar eso el. Estoy recibiendo un error. Entonces déjame ver qué errores esto todos nuestros barcos. Entonces, para ver la época, podemos entrar a las consolas. Yo sólo voy a hacer clic derecho, inspeccionar elemento. Ve a la bañera de la consola encendida, déjame ver alguna ni se podría hacer conexión. Oh, lo siento. Yo sé lo que está mal. Entonces yo en realidad solo lo tengo en un proyecto de inicio más así que déjame empezar eso. Por lo que necesito volver a mi solución. ¿ Verdad? Haga clic va de propiedades y asegúrese de que estamos en inicio múltiple de proyecto con el FBI empezando en modo de depuración antes de la u I Onda hacemos clic en Aceptar y eso lo ha probado de nuevo. De acuerdo, intentemos eso otra vez. Entonces regístrate y ya tengo un usuario de prueba con eso. Entonces voy a decir diariamente una librería wanat dot com Andi misma contraseña y luego envía en entonces es nuestro punto de ruptura. Entonces eso significa que acabamos de conectar exitosamente desde nuestro tú i sobre a nuestro a p I derecho. Entonces viste eso cuando el proyecto AP I no estaba corriendo el tú. No pude hacer nada porque necesitaba conectarme a la siguiente página web. Entonces a pesar de que estamos en la misma máquina, pesar de que estamos usando el mismo servidor Web, se puede ver que están transmitiendo desde diferentes direcciones en el principio queda de ver. Es lo mismo que harías si quisieras hablar con otro FBI alojado en un sitio web a mitad del mundo una vez que tengan una u r L puedes usar las mismas técnicas Http, cliente el post para obtener cualquier método que sea y conectarte a través. Ahora. Dicho eso, solo voy a verificar que los datos se están enviando y aquí se ve el detalle del usuario , pesar de que enviamos el modelo de registro o registro, se encuentra con contraseña de correo electrónico y confirma contraseña. En realidad sólo estamos recibiendo la dirección de correo electrónico y la contraseña. Eso es todo lo que realmente importa, ¿verdad? Por lo que puedo expresar a las cinco. Estoy bastante seguro de que pasará entonces. A ver qué haces el tú. Está bien. Andy navegó de regreso a casa, que es lo que le pedimos que hiciera derechos. Dijimos: Si tiene éxito, entonces vuelve a casa. Entonces, ¿eso es lo que hizo? No, claro que quiero modificar un poco esto para que cuando la persona se registre, probablemente vayan a la tala. Entonces, no, vamos a trabajar en la funcionalidad de registro para asegurarnos de que cuando regrese la luz del día y ella quiera, muchos de nosotros podamos hacer clic en tu contra. Forma César pone en nuestros datos, y luego cambiamos el estado de autenticación fuera de nosotros mientras sacamos el talkin y analizamos todo en el camino. Está bien, así que mantente atentos. Tenemos otra actividad de impacto que se acerca cuando hablamos de la tala. 40. Ingreso del usuario de la configuración: ampliar ampliar la autenticación de Blazor: Oigan, chicos, bienvenidos de nuevo. Vamos a estar abordando sobre el usuario login in funcional it. Ahora mismo, tengo bastante que hacer a alguien para seguir adelante, y en cualquier momento, siempre puedes pausar el video encendido, tratar de ponerte al día con lo que estoy haciendo. Pero voy a estar voy a tratar de ser lo más claro posible al explicar lo que está pasando. Entonces estoy empezando con nuestro en puntos, y lo primero que d necesario es asegurarme de que no tenemos en punto para las inscripciones. Para inserciones largas. Voy a llamar a este punto de inicio de sesión, y va a tener la base, tu vieja tajada Estaba ocupado. Oral de los usuarios de slash del FBI slash logging con la slash final. A continuación, voy a pasar a modelos, y voy a crear por dentro los detalles del archivo de modelo de usuario en o clase de modelo de registro. Por lo que teníamos modelo de registro. Se va a ver de la misma manera más o menos. Simplemente no tenemos que confirmar contraseñas, entender toe copy, email address y password on put inside off love, porque eso es todo lo que realmente necesitamos para que alguien pueda iniciar sesión en la aplicación justo si tú querer, probablemente puedas despegar el parámetro de longitud de cadena porque no quieres darles ninguna pista que sepas que sería más feliz. No se quiere obtener ninguna indicación. Siento que tal vez la contraseña tenga que ser más corta que eso. Otro modelo que creé es la respuesta token. Por lo que en realidad podrías incluso poner eso dentro del modelo de usuario. Pero lo puse en su propio lugar porque todo lo que es es una clase. Ese token de cráneo responde con un campo llamado hablar porque recuerda que cuando llamamos al FBI estaban recuperando una cuerda para al menos la respuesta es hablar. El clave está hablando del valor. Por lo que queremos tener fi demasiado la clave para que podamos almacenar el valor cuando d serializarlo en el in. Llamó el FBI, pero ya veremos eso más adelante. Así que solo sigue adelante y crea esa respuesta token dentro de los modelos Ahora moviéndonos, vamos a pasar a nuestro contrato para el repositorio de autenticación I. Y aquí voy a introducir dos nuevas funciones una llamada iniciar sesión en una llamada Modelo Uno llamada Logo. Entonces ambos están tomando uno es un toro y uno es una tarea. Entonces, ¿cuándo es devolver un toro en uno es sólo que nosotros en? Entonces nosotros fuera de curso tenemos modelo de registro como el perímetro para nuestra función de inicio de sesión. Y si lo ponemos en el contrato, entonces debemos ponerlo en el repositorio. puedas ver ese estudio visual haciéndonos saber que tenemos errores. Y yo solo escondo esto porque a veces nos causa pánico de antemano. Muy bien, entonces. Entender para seguir adelante en implementos. Está bien, así que acabo de quitar algún núcleo extra que tenía ahí, así que no tengo que preocuparme por ello porque vamos a estar reescribiéndolo. Lo escribía solo para asegurarme de que lo tenía justo antes de venir a dar una lección que para película de mantequilla. Entonces está bien. Yo lo quité. No tienes que ponerle mucha atención. No, pero ahora solo nos aseguramos de que implementaste el registro en cabra ley y no poco enfocamos nuestros esfuerzos en nuestra función de inicio de sesión. Es así que déjame simplemente eliminar esta excepción lanzada en más o menos. Vamos a estar copiando lo que tenemos aquí en la solicitud en el padrón. Um, solicitud. Correcto. Entonces, ¿dónde acaba de ir a copiar? Estamos todos fuera de esta cancha, en realidad, Andi. Sí. Entonces copiamos esto en ponerlo, iniciamos sesión, y ellos iban a hacer algunos cambios porque, bueno, bueno, estamos haciendo el lado de registro en cualquiera de los dos registrarse en punto. Necesito los puntos de inicio de sesión. Correcto. Entonces en puntos que iniciando sesión en puntos, ya tenemos el modelo de carrito para el usuario. Por lo que estamos serializando el objeto de la tarjeta. Creamos el cliente en entonces http responsable. Entonces necesitamos que esto sea un cantar quién soy yo que se ve rápidamente en entonces todos estos errores con distancia tanto más o menos. Estamos haciendo lo mismo que estamos viendo. Intenta iniciar sesión, um, pasa de nuevo. Sea lo que sea que venga y estaremos creando los formularios fuera de curso, por lo que el formulario alimentará los datos. Aquí. Lo pasamos en el mismo método post. Pero estamos llamando a este endpoint onda. Verificamos si regresamos. Yo respuesta anotada no son una cancha de éxito o no. Pero entonces hay un poco más en ello que simplemente pegarse. Si es ah exitoso. Responsable? Porque recuerda que cuando hace mucho tiempo, estamos consiguiendo sobre el token encendido. Necesitamos el token, y necesitamos toe store el token para que podamos realizar operaciones, tirar la aplicación derecha. Alguien dedo del pie tiene que agregar unas líneas más fuera de cordón. ¿ Dónde en lugar de los que regresan, se aburre el éxito? Voy a comprobar si la respuesta no es éxito. Bien. Muy bien, entonces quiero volver caídas. Muy bien, así que acabo de matar la operación aquí mismo. Si no fue un éxito anotado como sabemos que debe ser. Después acabamos de matar la operación. Pero entonces podemos avanzar en Onda intentos del dedo del pie, obtener los datos de la respuesta porque, recuerden, la respuesta va a tener el tablero de respuestas así como un flujo de tokens. Entonces si quieres un poco de refresco en agujero estará obteniendo sobre los datos como no debería ser d serializando los datos para ir al repositorio base en, mira una u olvida las operaciones. ¿ Verdad? Ya ven aquí donde obtenemos la respuesta para una generosa. Claro, pero luego obtenemos el contenido, nos leemos cadena, y luego d c nos damos cuenta de que puntera sobre objeto off tipo T t aquí siendo el objeto abstracto que el abstracto. Um, ¿por qué los repositorios genéricos diseñaron puntera manejar Qué? En nuestro caso, ya sabes, estamos recuperando una plática y respuesta, ¿ verdad? Entonces en realidad puedo simplemente pedir prestadas estas cosas estas dos líneas fuera de núcleo, y voy a simplemente refractarles en lugar de escribirlas desde cero. ¿ Verdad? Entonces aquí estoy viendo obtener el contenido sobre que va a estar esperando que el contenido vuelva en el objeto de respuesta. Y luego partió de regreso. Yo quiero ver a Vier. Talkin es igual a Jason. Dot GC se basa en el objeto en remolque. Nuestra clase que creamos plática y respuesta, ¿no? Surma aburrió consiguiendo buck la llave token en el contenido. Estoy viendo lo que sea la clave es mucho de vuelta a los campos aquí. Entonces eso es realmente lo que estamos haciendo en el repositorio basado, si eso no se explicó realmente antes o realmente entiendes área. Entonces por eso tenemos que ser falsedades. Estamos pasando el modelo actual o el auto. Es clase. Muy bien, Así que cuando nos movamos a conseguir a los autores y demás y libros, entenderás que es un poco más, pero por no, Que esto pre como un poco de orientación en cuanto a lo que está pasando dentro de eso, um, operación. ¿ Verdad? Entonces estamos d serializando, cualquiera que sea el objeto por el que gastar a través del Jason en remolque, una clase con campos coincidentes. ¿ Todo bien? Y luego una vez que hemos conseguido eso, dejaron algunas cosas más que tenemos que hacer. Necesitamos almacenar el token en algún lugar. Entonces necesitamos cambiar los estados de autenticación fuera de la aplicación en. Entonces después de que no todo fuera que me quedé satisfecho, entonces sólo podemos regresar Verdadero, porque es un lingote tan cierto significaría que todo fue exitoso. Por lo que acabo de devolver el dedo del pie verdadero terminarlo. Entonces en base a esos comentarios que acabo de hacer, tenemos algunas cosas que necesitamos conseguir. Necesitamos dedo del pie, conseguir una biblioteca que nos permita almacenar el talkin. Está bien, entonces estaremos usando almacenamiento loca para eso. Entonces tendremos que entrar en nuevo get y conseguir una biblioteca. Eso es mucho del almacenamiento local de Steve. En otra cosa que necesitamos usar nuestro para hacer es anular el proveedor de autenticación predeterminado para blazer. Para que podamos dejar que haga exactamente lo que queremos. Está bien, así que empecemos con conseguir esa biblioteca. Entonces entrando en nueva mete en nuestra librería, tú yo aplicación o proyecto. Más bien, voy a buscar esta biblioteca, una biblioteca realmente cool y rapero um llamado almacenamiento de Blizzard. Por lo que acabo de ir al local de Breaux afirma un blazer dot almacenamiento local. Y entonces puedes seguir adelante y no sabes eso. Por lo que esto te permitirá usar el almacenamiento local en un navegador para iniciar la autenticación. Hablando. No, eso es un equilibrio entre usabilidad y seguridad porque hay preocupaciones de seguridad al respecto . Pero entonces, para este proyecto, al menos nos está dando un sabor de lo que algunas personas hacen, lo que se está haciendo. Más avanzado, necesita se puede emplear. Pero no quiero agitar el proceso. Correcto. Entonces estamos poniendo la ventisca de la biblioteca en ese almacenamiento, entonces necesitamos inicializarlo en nuestro inicio de ese CS. Y para ello, vamos a bajar a configurar servicios en el blazer lateral Ernie's Service amaneció. Yo sólo voy a poner los servicios atracados. Agregar almacenamiento Blezard loca. Por lo que esto no es darnos acceso al almacenamiento de ventisca de la biblioteca a través del contenedor de dependencia u otros contenedores del COI. Por lo que de vuelta en el repositorio, no puedo seguir adelante e inyectar un nuevo servicio así puedo decir solo lectura privada. Y luego fui a llamar a mí servicio de almacenamiento local y llamarlo. Estoy llamando al almacenamiento local del objeto. Entonces si necesitas incluir una biblioteca, adelante y hazlo en eso traería el uso de blazer dot almacenamiento local en luego fuera curso. Tenemos que inyectarlo. Andi inicializado y después saber que lo tenemos. Podemos usarlo. Entonces, ¿para qué lo vamos a usar cuando tengamos el token? De acuerdo, así que acabamos de llegar a Tokio y no está dentro de esta cuerda. Llama token de Vier. Sé que necesito almacenamiento del dedo del pie. Entonces voy a decir un peso en el marcador. Almacenamiento local on. Entonces lo que el almacenamiento local me permite hacer es claro son el almacenamiento local Um ver si hay unos valores en particular. Pero lo que me interesa hacer es sentarme en artículos voy a ver si set item enfrenta y entonces esto va a preguntar ante nuestra clave Onda un valor. Está bien, entonces la llave que voy a poner como hablando agradable y simple o no, déjame. Han sido más oficiales, obviamente fuera de hablar. Entonces estoy con el pasado en Ken. Entonces, ¿cuál es mi objeto? Pero el campo es ese hablador ¿verdad? Entonces la sensación de que cuando llegó d c se basa consiguió aliados dieser en el token de campo. Ahí es donde está el valor. Por lo que estoy configurando un nuevo elemento en búsqueda local llamado off token on estoy diciendo hablando eso hablando. Muy bien, entonces cuando iniciamos sesión todo es exitoso que obtengamos el token, lo almacenará en almacenamiento local, que está en un navegador. Y cuando estemos probando, verás esa primera vez exactamente lo que eso significa. Está bien, Así que lo siguiente que queremos hacer es cambiar Estado off the up por estado de autenticación off the up, que mencioné necesitarán todavía escribir alguna cancha personalizada y otra vez en el proveedor que es ya construido. Entonces voy a seguir adelante y crear una nueva carpeta en Voy a llamarla proveedores Todos los proveedores , y luego dentro de fuera de los proveedores. Vamos a crear un nuevo archivo. Entonces en una nueva clase. Y estoy con el llamado un proveedor de estado de autenticación P I que es un bocado, pero un proveedor de estado de autenticación P I y luego hacemos clic. Agregar, entonces estas autenticaciones. Bueno, esta autenticación del FBI dijo que proveedor realmente va a heredar algunos sólo va a poner en un colon de herencia en su herencia del proveedor estatal de autenticación. Por lo que solo puedes copiar y pegar eso y despegar el A p I encendido. Entonces esto me va a requerir dedo incluir una biblioteca. Y una vez que eso se haga, sabrá requirirme toe proporcionar implementa la clase abstracta, lo que significa que tengo que proporcionar una anulación autenticaciones hacia adelante que proporcionan una clase o funciones son obtener autenticación Estado que hunde son tanto más o menos lo que estas autenticaciones que proporcionaron hace fuera de la caja es la persona autorizada o no? Están autenticados, son nueces. Y luego, base en las autoridades de diferencia que configuramos alrededor de la aplicación, estará diciendo sí o no. ¿ Pueden hacer esto? ¿ Pueden hacer eso bien, o deberían ver esto si ven que todo está por construir. Entonces lo estaremos manejando todo lo que queramos. No, La razón por la que lo estamos anulando, sin embargo, es que queremos cambiar el comportamiento basado en el hecho de que estamos usando token. Entonces quiero ver si hay un token presentando almacenamiento local y que algo es que esta persona está autorizada ya se autentican, correcto. Entonces si voy a tener que estar buscando en almacenamiento local, eso significa que necesito el dedo en la dependencia. Consulta historias locales. Voy a tener que inyectar en esta tienda local de la misma manera que lo hicimos en el off la autorización que acaba de conocer. Está bien. O autenticación Repositorio en. Entonces voy a tener que sentarme a mis constructores de SETI o a nuestra tina superior. Muy bien, proveedor de estado de autenticación en. Entonces pongo en mi parámetro para el almacenamiento local en. Entonces inicializo dentro del constructor. Está bien, así que ahora dentro de esta función puedo hacer algunas cosas, pero luego déjame decir esto. Voy a tener que poner el try catch, ¿verdad? Entonces, ¿qué pasó? ¿ Es la primera vez que hago esto? Pasé tiempo preguntándome por qué no funcionaría. Estaba consiguiendo algo sobre el renderizado y algunos chocan con inicio local. Por lo que basado en el hecho fuera de todo señores Blazer, necesita todo a Lord. En primer lugar, creo que había alguna falta mucho son algunos, um, um, mal manejo de los tiempos más bajos entre las comprobaciones de almacenamiento local en el cable del servidor real . Entonces estaba recibiendo un error, ¿verdad? Entonces el try catch es solo para asegurarse de que no se estrelle su victoria cuando todo no lo hace Lord al mismo tiempo. ¿ Verdad? Entonces lo primero que voy a hacer es intentar conseguir el token que está en las tiendas locales. Entonces para conseguir el token, voy a tener un token de guardar muy llamado en curso esperan almacenamiento loco que le den itim un fregadero . Y va a decir que nos estoy poniendo cuerda justo en. Entonces el nombre fuera del valor son la clave para lo que quiero está fuera de tokens. ¿ Recuerdas? Acabamos de ponerlo cuando la persona lo ama. Se debe crear un token de clave desconectado. Entonces eso significa que en cualquier momento que queramos recuperarlo estará usando esta función. Obtener artículo. Y esto me está dando un postes árabes necesita ser un fregadero. Muy bien, entonces. Siempre que lo tengamos, se salvará. Se almacenan en token guardado. De acuerdo, No, Cuando sí consiga este token, quiero revisar algunas cosas dentro del token. Y voy a traer algunas fichas viejas y mostrarte lo que quiero decir con chequear algunas cosas . Entonces aquí hay algunos tokens de ejemplo, ¿verdad? This tokens de aire que me tipo a Pete parecían de pruebas anteriores. Esto no tiene sentido para mí mirarlo. No tiene sentido para ti en este año una computadora que sea capaz de decodificarla. Está bien. Pero entonces el punto es que todos fuera de ellos, fueron impresionantes para tres usuarios diferentes son al menos algunos cuatro el mismo usuario, pero en diferentes situaciones. Pero la información del encabezado es la misma. ¿ Todo bien? No. Entre las paradas completas, tienes la primera parada 4. Yo soy la última parada completa, ¿verdad? uso de ellos es una especie de tratar de esa manera. Muy bien, Tenemos lo que llamamos las cargas útiles. Si solo hago doble clic en esa sección entre las paradas de comida, tenemos eso como las cargas útiles. Esa carga útil contiene toda la información que se habría instalado en la capacidad carcelaria. El emisor, esa fecha de caducidad. ¿ Quién? Todos esos reclamos? Nuestro número uno reconstruyó nuestros tokens. Ponemos un montón de reclamos fuera. Todos esos bits fuera de la información son almacenados y accesibles dentro de la carga útil. Ahora usando No, pero plus plus, simplemente puedo ir a enchufes, ir a mamá. Herramientas sobre base 64 d Acorde on, entonces. Esto se ve un poco mejor donde ves sub con el valor U c j t I. Ves Nombre identificador. Ves el papel, ¿verdad? Um, la fecha de caducidad pericial o al menos algún tipo de valor. Eso representa una fecha de caducidad en la ISS. Tu que era anfitrión local Manguera Loca. ¿ Verdad? Andi puede mirar. ¿ Ves eso? Todos se vendieron Be a 64. La decodificación es una especie de matemática. Por lo que éste se sentiría porque hay Ahmad por mes que tiene que suceder luego recibió este va a trabajar lo básico antes. Muy bien, Así que cada vez que obtienes esa flecha, te refieres a Neto y uno son dos iguales de sentido. Creo que éste requiere igualar signos. Um, Andi, no sé que yo solo Esto fue juicio y error, ¿ verdad? Por lo que los meses para el mod deben ser dos o tres. Entonces si no es ninguno, no creo que vaya a funcionar. Si es todavía, necesita un lado igual, es es hacer que necesita igualar científica Calle necesita uno, algo así. Pero el punto es que éste era un tipo de reclamos correctos admitidos, y toda esa información está llegando por dentro de las fichas. Por lo que necesitamos ser capaces de París estos tokens para tomar decisiones cuando estamos recibiendo el estado de autenticación. ¿ Todo bien? No, La primera decisión que quiero tomar después de intentar recuperar este token es si incluso hay un token. Entonces si solo voy a usar mi biblioteca de cadenas y ver es no o espacio en blanco. Entonces si no es nada o espacio en blanco guardar dedo puede guardar token, ¿ verdad? Entonces no hay nada dentro. Yo no recuperé nada. Yo lo busqué y no conseguí nada de vuelta Entonces necesito devolver un nuevo estado de autenticación , Consigue mi giro correcto, tu estado de autenticación justo encendido. Entonces la autenticación se quedó arroja en principios. Entonces eso significa que cuando un principio está presente, eso significa que yo uso ahí está presente. Entonces si solo paso un nuevo principio de reclamos, todo bien borra principio entonces y el principio de siniestros puede tener en blanco. O puedes inicializarlo con una identidad limpia, ¿ verdad? Entonces voy a pasar en una identidad en blanco porque quería ser extremadamente claro que aquí no hay nadie. Todo aquí está vacío, nadie está presencia o el estado de autenticación es que no hay nadie. Eso es más o menos lo que eso está diciendo. Por lo que esto sigue en la aplicación de la aplicación blaze de que nadie es presidente. Nadie está en casa. Por lo que no necesitas hacer nada. Simplemente finge que a nadie le encantó tener razón. Por lo que avanzando, sin embargo, podemos seguir para conseguir el contenido. Entonces no te muestro todo el contenido fuera del que hablan en eso es necesario justo en. Una cosa que queremos hacer es también comprobar la caducidad, Así que si el token está caducado, entonces queremos decir que nadie es amado y también voy a querer quitarlo. Entonces si está ahí pero caducó, queremos quitarlo de ahí en adelante, queremos cambiar la autenticación. Los Estados no lo autentican. Entonces a fin de París el token tenía financiador actuando en algún tribunal de redacción para hacer todo ese análisis. Y eso es que conozco el signo igual y los fundamentos antes y así sucesivamente. Pero hay una biblioteca que este presidente que nos puede ayudar a través de eso. Entonces en lugar de ponerte a través de todo ese cordón, sólo vamos a ir a nuevo get otra vez. ¿ Te causé que te pongas lo hice Así que déjame que acabo de lanzar te pongas rápido y voy a estar buscando Déjame ver si solo puedo buscar el punto jwt de Tolkien. Espero ver la biblioteca. Ahí vamos. Entonces sistema esa identidad, no modelo. Eso son fichas de que J lo belleza. Así que solo sigue adelante e instala esa biblioteca, y luego podemos volver a Bueno, tenemos que ir para empezar ese CS encendido. Empecemos que Sears sepa que queremos dedo del pie tener acceso a esa biblioteca dentro los contenedores de dependencia, ¿ verdad? Entonces voy a agregar una instancia de ámbito para que solo pueda hacer eso debajo del cliente del PIB en con otras escuelas. Instancia fuera de la J Liberty hablando cientos. Entonces eso me va a requerir que ponga en mi declaración de uso. Está bien, así que esto me permitirá usar esto en cualquier lugar una vez que lo inyecte en alguien para que se le inyecte el dedo del pie al proveedor estatal también, pero no tendré que repetir mucho la cancha. Así son continuamente crear objetos. Déjame darme prisa y hacer una lectura privada. Sólo Andi incluye el manejador de seguridad JWT. Lo estamos llamando en el token de marcador, manejador. Entonces verás, hay momentos en los que tendrás que hacer el contrato sobre el servicio para meterlo en el contenedor de dependencia, y luego tiende cualquier tipo de una sola instancia, y funcionará igual, ¿ verdad? lo que fuera de curso, después de poner en el objeto, necesario inicializarlo. Entonces me lo puse ahí. Entonces inicializamos manejador de tokens, Así que hablando 100. De acuerdo, así que ahora que tenemos este objeto de manejador de tokens, cualquier momento que queramos hacer algo hablando relacionado dentro de esto, solo puedo llamarlo. Entonces lo que quiero hacer saber es leer los contenidos sobre qué? Tener nuestro dedo del pie puede contentarse igual a ir a ver subrayado Token Handler atrapa entonces a partir de aquí, es Oh, digamos, ¿ puedes leerlo? Queremos crear ¿Quieres crear una habilidad de jade? Tienes un montón de opciones. Entonces el que quiero su leída jwt hablando, entonces tener el pase la misma unidad de token. Entonces ese teléfono, hijo. Entonces esto nos da un objeto llamado token de seguridad JWT. Entonces a partir de este objeto, puedo decir, ¿Cuál es el valor de caducidad? Muy bien, hasta el momento caducidad. Sabrá parse o me dará. Déjame solo asegurarme de que obtienes mi Sí, solo revisando la ortografía para que analice ese valor en remolque. El tipo de datos que quiero. Entonces si digo no válido a hace que éste fuera de esos reclamos que se enviaron vemos que tiene fecha hora. Me va a dar una cita. tiempo obtiene el gran valor del tiempo. Entonces si digo dedo del pie válido es igual a caducidad, entonces puedo comprobar si la fecha hora no o expirando es menor que la gran hora. No. Entonces recuerda que el tiempo de caducidad era algo que teníamos ciudad, eso es todo. Si agregamos cinco minutos se suman cinco días, sea cual sea el tiempo de caducidad, lo voy a conseguir en el valor diurno y estoy con completo sin encendido. Si no tiene un valor mayor al que era entonces el tiempo de caducidad. También quiero decir que nadie está autenticado porque sea lo que sea que hable ya no hay valor. Pero además de eso, también voy a querer sacarlo del almacén. Entonces puedo ver un peso en el marcador, punto de almacenamiento local y luego se puede ver quita Soy un fregadero. Muy bien en. Entonces me va a pedir la llave y la llave está fuera de habla. Entonces si el token está caducado, retírelo. Eso es más o menos lo que estamos haciendo, ¿verdad? Entonces antes de no hacer esto y la ficha estaba ahí, la persona estaba amorosa porque mientras hablaba estaba presente, así que nos estábamos volviendo estado no autenticado para la persona. Pero no eran todo lo que hacían clic. Había, no pudieron entrar. Todo se estaba congelando. Y cuando entramos e investigamos vimos que estamos consiguiendo sobre el 401 Porque el token estaba experimentando un P. Yo estaba rechazando el token, pero no teníamos la facilidad en el dedo de aplicación, ya sabes, amar a la persona fuera si el token es inválido. ¿ Verdad? Entonces lo que pasó es que una vez señores de aplicación , causa disfunción, y luego hace estos cheques que estamos poniendo. Entonces si el token estaba ahí pero caducó, lo retiramos. Y entonces amamos a quien se haya registrado en largos memos. Nadie se ha identificado en ese punto. Muy bien, entonces estamos forzados. El usuario tiene toe re autenticar. Si el token caduca de la misma manera, si no hay token, mientras que solo tienen que iniciar sesión si quieren cuidar las operaciones necesarias En este momento, lo siguiente que quiero hacer es obtener los reclamos del token. Porque no sólo voy a poner para obtener limpia de so ken on, luego construir objeto de usuario autenticado en, luego devolver, luego devolver, Autenticado, autenticado. Primero son los objetos, ¿verdad? Para que esas sean las cosas que queremos hacer. Pero entonces lo que pasa es que sacar los reclamos de para hablar, y eso es algo que voy a querer hacer en múltiples ocasiones. Entonces solo voy a crear en función para ese separado. Ah, por cierto, déjame antes de seguir adelante para la captura. No quiero tirar porque entonces eso se estrellaría el programa. Entonces si algo en el programa se estrellara, digamos que devolvimos los estados de autenticación siendo nada, ¿ verdad? Entonces no estrelles el programa igual que todos los demás, ¿verdad? Entonces déjame seguir adelante. Entonces estaba diciendo que necesito una función o quiero una función que sólo va a obtener todas las reclamaciones del token, ¿ verdad? Porque eso es algo que voy a estar usando más a menudo. Y también va a servir un doble propósito, compensando un reclamo articular pop que no teníamos antes. Por lo que vamos a crear esas funciones en las que voy a ahorrar privada. Voy a usar una lista, una lista fuera de reclamo. Está bien, así que el tipo limpio Así que quiero una lista fuera despeja, y quiero llamarla Así Empire grita sobre lo que estoy pasando. Es este objeto, que es nuestra charla y contenido. Está bien, así que es tipo de datos es J W T punta de seguridad puede. Ese es el tipo de datos fuera de ese objeto que pasaban y luego para obtener los reclamos. Es realmente simple. Entonces voy a explicar por qué estoy pasando por la molestia de tener ah todo, um, función para ello cuando es realmente simple. Alguien para guardar reclamos de hierro es igual a los contenidos de token. Recuerda, contenido token, esas mangueras de objeto, todo lo que necesitamos saber sobre nuestro token, está bien, pero entonces puedo verlo atracado ahí. Tenemos un campo llamado reclamos, que nos está dando la lista fuera de tokens todo en el reclamo tipo beta en su en innumerables Bueno, nos está dando un innumerable off claim, ¿ verdad? Pero sí quiero un menos porque voy a modificarlo un poco de lo que no puedo modificar lo innumerable lo mismo donde se puede modificar liberado ¿verdad? Entonces lo estoy haciendo enumerar. Pero entonces voy a decir reclamos que anuncio en estoy agregando un reclamo totalmente nuevo. Muy bien, Onda, este reclamo va de pie. Tener el tipo de reclamaciones nombre de punto en Dover. Cuando iniciemos sesión, te explicaré ver exactamente cómo entra todo esto. Tan tipos limpios. Perdón. No está claro Stipe o tipos limpios que nombre en el valor que este nombre es cuando tohave es hablar de contenido. Consiguió tema. Está bien. Entonces sujeto sería lo que vimos. Un sub en el decodificado. Entonces sub eso es correo electrónico. Entonces estoy diciendo que el usuario principal son el reclamo. Una de las afirmaciones que este usuario, cuando se construye, debe tener es el nombre siendo igual a lo que sea con la Pascua como sujeto. Está bien, que es la carta de correo electrónico iniciada, nombre anhelo o lo que sea crestas en Entonces no podemos volver despeja. Por lo que no hay análisis. El a listar es que necesitaba hacer esta línea, y no puedo hacer eso en innumerables. Entonces sepan que tenemos, ah, ah, función dedo del pie, conseguir los reclamos. Significa que cualquier vez que obtenemos aclaraciones y llamamos a esta función, estamos recibiendo todos los reclamos. Entré así como la adición fuera de nombre siendo mientras el agua estaba en materia. Está bien, entonces, no, puedo construir el usuario, así que en realidad sólo voy a fusionar estos dos en uno, ¿ verdad? Entonces sólo los fusionamos bien. Alguien para construir el objeto de usuario o voy a guardar a nuestro usuario es igual. Por lo que reclama principios. Entonces, casi todo lo que teníamos apareció, ¿verdad? Entonces, en realidad, sólo voy a copiar este incidente, reescribirlo un poco. El ver de nuestro uso es igual a un nuevo principio de reivindicaciones. No obstante, en realidad vamos dedo del pie tener, ah reclama identidad con un valor. Entonces los reclamos identidades que tienen estas afirmaciones Lo siento va a tener reclamos de París. Está bien, ¿sabes qué? Déjame hacer esto un poco más limpio. Entonces déjenme decir que los reclamos de fuego son iguales. Toe la función. Call toe fire grita nuestro paso en el contenido token. Está bien. Y luego una vez que obtienes los reclamos en esta variable, entonces vamos a decir que la identidad de los reclamos tiene estos reclamos sobre cualquier luchador. Do. Vamos, mira al constructor. ¿ Ves eso? Estamos preguntando Es pedir la cobranza fuera de reclamos en entonces puedo decir la clave. Que los asociados son el tiempo de autenticación, que en este caso fue JWT. Muy bien, entonces tenemos a ese usuario encendido, entonces el siguiente Lyon dice que regresamos a los usuarios autenticados. Entonces vamos a devolver todo lo que tenemos aquí. Esa declaración de devolución completa es aplicable, pero en su lugar fuera un blanco yo en blanco reclamos principio e identidad. Voy a devolver usuario porque es el mismo principio de reclamos con una identidad con reclamos esta vez. Entonces solo estoy devolviendo ese objeto dentro de los estados de autenticación. Entonces todo esto es decir que Obtener el token. Si no hay tiempo de hablar, nadie es cariñoso. Si hay un token aún fecha de caducidad, si ha caducado, entonces quita el token. A nadie le gusta. Si ninguno de estos consigue atropellado, eso significa que quieres conseguir los reclamos. Obtener el usuario, construir un usuario. Andi, di que alguien es encantador. Eso es más o menos todo eso. Todo lo que veas. ¿ Nunca te has hecho un poco fuera, puesto a conocer. Pero tenemos un poco más, y luego podemos hacer una pausa y pasar a las otras actividades, ¿no? Entonces a continuación voy a decir, inicia sesión. Entonces voy a crear mi propia función dentro de este proveedor de estado de autenticación cuando veamos la tarea de enfrentamiento público, me encanta el sí, de acuerdo. Entonces cuando llamemos a iniciar sesión. Está bien, lo que quiero hacer es conseguir el mismo token, ¿ verdad? Entonces recuerda que tenemos la función de inicio de sesión en el repositorio. ¿ Verdad? Entonces sí dije que quería cambiar el estado de arriba para hacer eso, necesito llamar a algo adentro fuera de una p. me quedé proveedor, pero no puedo simplemente llamar al get autenticado. Ves, eso es conseguir que necesito establecer el estado de autenticación manualmente. Entonces estoy creando ah, función call login in o long in lo que sea que quieras llamarlo. Pero esta función va a ser lo que llamamos al final todo esto un p que llamo y Paris ing y así sucesivamente. Entonces yo estaba cambiando el estado. Entonces construyámoslo juntos. Entonces cuando digo logueado, lo primero que quiero es el mismo token. Entonces estaremos recuperando eso del almacenamiento local, ¿ verdad? Está bien, porque acabamos de ponerlo, está bien. Acabamos de ponerlo en almacenamiento local. Entonces, ¿qué? Estoy cambiado en el estado de autenticación el. Es decir, posiblemente, podría haber pasado por encima de la ficha, pero eso está bien. Es decir, sólo para asegurarnos de que somos consistentes Si lo ponemos aquí por aquí, lo voy a conseguir del almacén local. También voy a querer analizar el reclamo, así que necesito poner el contenido en. Después fui a hacer más o menos lo mismo que hice arriba, donde voy a analizar los reclamos justo en. Entonces una vez que tenga los reclamos, me voy a construir a mi usuario. Entonces así se recuerda esto. Esto es get. Entonces si cierro el navegador encendido, entonces vuelvo a la aplicación. Lo que esto está haciendo es que cuando la aplicación lo sabe causa para obtener cuál va a comprobar el mismo token y luego recordarle a la aplicación en quién es amado, eso es lo que está pasando. Por aquí es donde estoy anhelando a la persona en usuarios de habilidad Sur. Entonces cuando inicies sesión, esto es lo que se va a llamar y construir tu usuario por primera vez. Muy bien entonces, después de haber construido el usuario así que prácticamente todas estas líneas fuera de la cancha parecen un pop de botes con menos cheques en el medio. Después de eso, voy a salvar a nuestro fuera de estado en. Después fui a decir tarea a partir de resultados. Nueva autenticación estados por lo que más o menos es la misma llamada de función. Pero solo estoy revisando qué fuera de las autenticaciones que es después de empaquetar esa información en luego en base a lo que obtengo de esta llamada de función, sabré, notificar a la aplicación fuera del cambio de estado. Entonces, ya sabes, si pones las declaraciones si la persona es amada y luego muestras esto de otra manera para que todas esas acciones se tomen una vez que metamos una vez que notifiques el cambio de estado ¿ está bien ? No, nuestra siguiente sería ley cabra, y entonces podemos llamarla realmente no se llama Rafto implementado en el repositorio también publica Put Lagos ya que estamos aquí Notas tan largas básicamente está cambiando el dedo del pie estatal . Si no había nadie ahí más o menos bien, Así que básicamente estoy construyendo un principal de reclamos en blanco y lo voy a hacer en Call it nobody. Entonces nadie está en casa justo en ese entonces. Estas dos últimas líneas más o menos siguen siendo aplicables lado de copiar y pegar esas. Pero en lugar de pasar en usuario, que obviamente no existe aquí, estoy pasando a nadie. Entonces estamos notificando esto. Entonces no somos aplicación diferente del estado. Cambiar eso? No. Hay un principio en blanco sobre ninguna identidad, no hay reclamos disponibles actualmente. Por tanto tiempo la persona sostiene. Está bien, así que terminamos con el proveedor estatal. Volvamos a nuestra positividad y luego acabemos con esta actividad. Entonces ya ves, estaba un poco fuera de trabajo. Y luego cuando volvamos con antes de cruzar en la interfaz, correcto, Así que después de esto y quiero cambiar el estado de arriba, eso significa que necesito el proveedor del estado de autenticación. Es Entonces no, tenemos que volver atrás, inyectar esa dependencia. Entonces voy a ir ahí en luego decir que quiero un nuevo objeto, leer solo proveedor de estado de autenticación e inicializado eso fuera de curso en o constructor. Por lo que tenemos autenticaciones, el proveedor y nuestro objeto encendido. Entonces lo que pasa es que necesitamos llamar a Ah, estados de autenticación proveedor toe realmente hacer el inicio de sesión ¿verdad? Por lo que las autenticaciones, proveen puntos. Pero entonces cuando lo hago, el doctor se dio cuenta de que sólo me estoy poniendo bien. Cambió un evento sobre el estado, Pero también solo estoy consiguiendo el estado get autentication Sink derecho. Algunos fueron después de tipo apagado, hacen una barra de anulación mecanografiada estaban a su lado. Voy a tener que hacerle saber que realmente es el proveedor de estancia de autenticación A P I, que es mi anulación, que tiene las opciones personalizadas. Correcto. Um, bueno, entonces todo lo que necesito para envolverlos en una brisa para que vea hace un objeto grande. Entonces este es el tipo casting on, entonces. Solo estoy viendo esto todo este tipo lanzar un objeto. Muy bien, entonces veo puntos. Entonces veo logueado, ¿verdad? Entonces solo puedo decir que el amor sea semi colon. Está bien. Y es un sincrónico después de cómo lo. Y entonces estamos bien para ir y sólo asegurarnos de que sea una tarjeta SIM. Bien. Entonces esta nieve dirá que después de sentar el almacenamiento local, 41. Inicio de la configuración del usuario de media: parte 2: Oigan, chicos, bienvenidos de nuevo. Estamos en parte para compensar nuestra funcionalidad de inicio de sesión de inicio de sesión. Y hicimos un poco fuera de trabajo en el video anterior y tenemos bastante trabajo que hacer en este. Pero vamos a la escuela justo en eso. Empecemos al inicio de ese archivo CS. Entonces en este expediente, necesito agregar a la escuela en los sentidos uno para nuestro sobre en proveedor. Por lo que acabamos de crear el proveedor estatal de autenticación del FBI. Por lo que necesito agregar con scooped para eso en entonces. Después de eso, tengo una línea un poco más complicada a derecha donde fui a ver servicios que en la escuela estaño en las autenticaciones originales que proveen en, Entonces nos divertimos p para abreviar pueden ser proveedores. Supongo que puedes mirar muelles, empezar por proveedores, y luego estamos viendo obtener el servicio requerido. Por lo que solo agregas esas dos líneas en la escuela ap i autenticaciones. Ellos proveedora Onda se habían escabullado. Indicaciones sí proveedor el. Entonces seguimos adelante y ponemos en la opción p para obtener el servicio requerido en esa clase personalizada. Está bien. Nadie se está poniendo el dedo un poco más divertido. Está bien. Tan poca escuela estaba de pie sobre las páginas y vamos a empezar a crear sobre páginas de registro. Entonces me voy a ir de pie. Agregar en. Voy a añadir un nuevo artículo, andare componentes o elevar un componente de Goto. Weber es un componente, y se va a llamar Iniciar sesión esa maquinilla de afeitar. Entonces sigo adelante y agrego que en una vez que se haya creado la primera línea fuera del aburrimiento, cuando el cambio es la página, así que vamos a hacerle saber su camino para ser slash logging. También voy adelante, voy a seguir adelante en inyectar um, el repositorio de autenticación Onder, el gestor de aviación de nav on estoy llamando al objeto Navegación de gerente. Encuentro más fácil de ver. Correcto. Entonces ahora, gerente, lo que vemos aquí, donde estoy sacando las líneas rojas causa necesito incluir alguna literatura, amigos y el padrón. En realidad ponemos en la declaración de uso manualmente. Está bien, así que déjame copiar el sur fue a necesitarlos más tarde. Ves cómo puedes hacerlo sin necesidad de poner las declaraciones de uso cada vez. Pero por ahora, solo trabajemos con ello. ¿ Todo bien? Entonces no tengo todo ahí encendido, entonces solo voy a armar este formulario para justo en mi formulario de inscripción. Entonces en realidad sólo voy a venir aquí en copiar todo, incluso el cable. Sólo voy a copiarlo todo porque va a ser bastante similar. Entonces no quiero pasar tiempo reescribiendo cosas que ya es tipo de tener. Yo estoy con el ritmo, y luego sólo pasamos y afinamos las diferencias ¿verdad? Entonces en lugar de ver registro, no, va a ver un login. Está bien. Es algo salió mal con el intento de tala. Um, esto se va a manejar el registro en lugar fuera de manejar el registro en. Entonces el siguiente cambio que voy a hacer es que no necesito el campo Confirmar contraseña encendido. Entonces el botón no va a decir, presentar lo que va a ver un registro sobre registro. Realmente debería ver registro. Entonces yo, justo lo que no puedo me eso cambia otra vez. Yo ese cambio si quieres. Seguro. Está bien, entonces moviéndose a la mano Logging obviamente no existe. Alguien para cambiar sobre la tarea dedo del pie manejar iniciar sesión. Mi modelo no es modelo de registro esta vez, pero es modelo de registro. Entonces solo voy a cambiar el modelo de registro del dedo del pie de referencia del modelo siendo igual a una nueva instancia off logging model on. Entonces todos los pocos no deben volver a sesiones, tener algún problema con los Aldeños y mapeo de contraseñas back Andi por escrito esto anotó , me di cuenta de que realmente no necesito este campo y te voy a mostrar por qué no necesito , este campo. Entonces vamos a utilizar la respuesta que es un matón de cualquier manera para determinar si debemos mostrar la era no son rastreados. Por lo que tengo el mango de mango de amor y modelo. Taladrar estanques de virus es igual al log atracado pobre de Ofri En este momento estamos pasando por encima de un modelo. Entonces recuerda, el login no va a decir y déjame simplemente volver al servicio rápidamente para que podamos refrescar nuestros recuerdos cuando llamemos. La función de registro va a obtener los datos, enviarlos arriba en la solicitud evaluar. Si era cierto o falso justo encendido, entonces vamos a hacer todas estas cosas maravillosas para iniciar sesión en la persona después, ¿no? Entonces porque estoy recuperando nuestro lingote aquí puedo decir si respuesta entonces love manager. Esto es suficiente Manager, que significa que si su respuesta tormentas como eso es cierto, si me hago realidad, navegan al hogar justo de la misma manera. En registro había vuelto al boxeador ido y poner slash log in derecho Así que en su lugar, fuera navegando a casa, dije. Ahora llegamos a slash logging después de tu registro lo cual para mí es más lógico. Entonces lo que digo aquí es que si la respuesta es positiva, entonces adelante con la deuda. Navega a casa. ese momento, anhelo cambiaría realmente el estado en todo fuera del usuario encendido. Entonces puedo ver um más Bueno, entonces en realidad no necesito esto más. Entonces si respuesta entonces nunca se escapan, ¿verdad? Pero entonces lo que puedo cambiar aparece que puedo ver si no responder. Entonces déjame que sólo los coja. Eso pensé yo. Asegúrate de que no soy abortos ni algo así. Si no respuesta, Entonces mostrar esto que significa respuestas después de las caídas para que esto se muestre. Pero no se declara en ninguna parte, así que voy a declarar privados. Booleano llamó respuesta sobre va a ser lo que la verdadera inicialmente justo entonces. Entonces si es igual a true y se carga la página, entonces esto no evaluará el trousseau en ¿Ves ese mensaje de error? ¿ Quiénes son entonces? Estoy diciendo que la respuesta, que inicialmente tiene un valor de verdad, se va de pie a los resultados de la tala. Entonces si largo y vuelve verdadero, eso significa que esto no cambió. Y esto sigue siendo cierto para cuando llegue aquí y nunca nos escapamos. Si el campo de inicio de sesión esto no es falso, así que esto no sucedió en este estado va a cambiar, ¿ verdad? Entonces eso es todo. Dynamic Blazer hace esta cosa. Una vez que el estado cambie, una vez que el valor cambie en cualquier lugar tengan una declaración if o algo basado en el valor, reaccionará automáticamente. Está bien, así que eso acaba de meter contenido en fuego, menos líneas fuera de la cancha encendidas. Simplemente puedo volver a registrarme y re factorarlo de la misma manera. Muy bien, Así que vine aquí e hice los mismos cambios. Declaré respuesta toro. Y recuerda, si sientes ponerte en público o privado en el sobre el objeto que estás declarando se convertirá automáticamente en privado, ¿ verdad? Entonces estábamos ahí fuera, la respuesta fuera del intento de registro. Y si tiene éxito que nunca lleguemos a iniciar sesión Ondo, lo contrario se mostrará o mensaje de error. Diga, a ver que lo hice. Repetí esta carta sobre ustedes ven todo lo podemos hacer Ah, un poco más dinámico. Por lo que no tengo que repetir esto todo el tiempo. Entonces eso es por nuestro intento de tala. Hagamos algunos otros cambios interfieren mientras estamos aquí. Vayamos a más de punto arriba Razor. Esto es lo que estás arriba esa navaja debería verse. Por lo que queremos tener rotor. Y habríamos cambiado esta sección para decir autor, ya que road View on habría envuelto la vista antigua laica dentro de los estados de autenticación en cascada . Por lo que estos serán los responsables de permitirle hacer cumplir las autorizaciones a través de los diferentes componentes de maquinilla de afeitar que estabas construyendo. Por lo que una vez que hayas terminado con esas modificaciones, podemos pasar a nuestro menú. Y si recuerdas, habíamos configurado algunos enlaces, um, registro y registro. Está bajo ambos cables para ir a donde se supone que vayan. Pero la realidad es que nadie realmente quiere ver el registro y registrarse. Otras veces que estás amando, probablemente quieras ver un 16. Al ver que eres amado estar en un botón de logotipo. Y si no estás siendo, entonces quieres ver el inicio de sesión y registrarte. Por lo que vamos a modificar nuestro menú para mostrar los diferentes elementos en función de que la persona está fuera del estado de indicación. Está bien, entonces por lo que voy a empezar voy a empezar por quitar estos dos mientras estoy cortando, no borrando, voy a cortarlos porque voy a usarlos de nuevo en entonces en la forma más creíble. Voy a crear una nueva charla, y la estoy llamando autorizada. Vista autorizada. Está bien, así que autorizó vista abierta y cerrar, entonces. adentro apagado. Autor, como ustedes puedo ver autorizado. Está bien. Por lo que vio a una persona autorizada ver en esta sección versus lo que no están autorizados persona debe ver en esa sección. Por lo que no estoy autorizado. Persona sería la que se viera sobre el registro y los enlaces de registro, ¿ verdad? No obstante, alguien que está autorizado y yo sólo puedo copiar y usar por los mismos aliados es si te das cuenta que en realidad estoy reteniendo al mismo aliado con una clase y así es el mismo diseño. Pero lo que estoy haciendo en este divertido sobre por qué persona? Andi, estoy mostrando el nombre de identidad. Entonces recuerda que cuando estábamos analizando el reclamo y dije que necesitaba agregar una limpieza especial para el nombre, que tendría el valor de costura como asunto, que es el correo electrónico, eso es lo que es esto, ¿verdad? Entonces dicen que el contexto son usuario esa identidad, ese nombre. Estamos sacando ese nombre de la lista de limpia que agregamos al usuario. Está bien, así que eso es lo que es. Entonces cuando alguien esté autorizado, verán que así como otros seis en este serán para el logo try. Es Es otra L. Acabo de copiar N P. Así que creo que estoy cambiando aquí es que el treff es Lagos. Este no tiene ningún viaje porque nunca llegará a ninguna parte. Pero éste va a ir al barco del amor en. Tenemos nuestro hilado encendido. Acabo de utilizar en nuestro círculo izquierdo indicador flecha atrás para anhelar haute. Entonces ese es nuestro siguiente componente para navegar por el logo del dedo del pie. Entonces necesito un componente que se llame Lagos bajo los usuarios son. Sólo tienes que seguir adelante y dar click. Agrega nuevo artículo en estamos creando un nuevo es un componente llamado love boats. Está bien, entonces, amor ¿qué va a tener realmente cancha muy sencilla? De hecho, déjame sólo Bueno, déjame quitar la industria. No hay nada por lo que mostrar lo reemplazaría por la ruta de la página, que es slash love vote. Muy bien, entonces. Voy a tener dos cosas inyectadas algunas sin mi declaración de uso para mis contratos el. Me lesioné el repositorio de autenticación en el gestor de navegación. Está bien, y luego dentro de esto vamos a tener en anulación para ah, función que se despide cuando se carga una página. Entonces estamos viendo protegido sobre en una tarea síncrona sobre inicializado un fregadero justo en Entonces lo que eso hace es decirle a la página qué debe hacer una vez que se inicializa. Iba a decir una vez que estés inicializada, entonces quiero llamar a La cabra en mi repositorio el. Entonces quiero navegar por nuestro camino también la pantalla de inicio. Por lo que Lagos, recuerda, cambiará el estado de autenticación por el hogar de nadie en. Entonces simplemente navegamos a casa en luego el resto fuera de las vistas de autorización y todo se pondrá en marcha porque el estado de autenticación ha cambiado. Pero yo estaba bastante y ha estado un poco fuera de trabajo. Entonces, solo sigamos adelante y hagamos una compilación solo para asegurarnos de que no se rompa nada. Después de que hayas llegado a compilaciones exitosas. ¿ Se han construido con éxito los dos proyectos? Vayamos a ver qué está pasando. Por lo que voy a ir en mi autentificación rip depositario. Voy a poner un punto de descanso aquí al final sacando la respuesta son entonces pone que la primera declaración fueron las respuestas de volver y se iban a ir al barco amarrado y asegurarse de que tengas múltiples proyectos. Yo hago entero. la razón que sea, lo tomé. Además, fui a seguir adelante y sentarlo de nuevo. Entonces siento tener que empezar de nuevo, pero sólo voy a pasearte por los escalones otra vez. Por si acaso estás en mis zapatos te punteará propiedades fuera de la solución en luego bajo inicio de proyecto, seleccionas múltiplo sobre lo ves, comienzas, arrancas nuestro es una P y tú en ese orden haz click OK on, entonces intentemos eso otra vez. Y así hemos sido aplicaciones maravillosas. Para que veas que movemos el log in remolque por encima de la casa, son buenas rectas. Intentemos iniciar sesión. Entonces iniciemos sesión primero como clientes esa librería dot com que está intentando el inicio de sesión. Entonces vamos a disparar puntos arberg. Y cuando lo hagamos, podemos evaluar nuestra respuesta. Entonces cuando pase el cursor sobre respuesta para ver que estoy consiguiendo un estado bien encendido si bajo al contenido Bueno, bien, vamos a darle algo de espacio. Entonces déjame bajar a la línea a donde va. dedo del pie intenta consigue el contenido. Está bien, Así que si miro dentro de los contenidos, entonces veo token en esa charla y cuerda, ¿ verdad? Entonces, como dije, porque el campo está hablando y la cadena es que había d serializándolo en respuesta token , que tiene un campo para el token. Entonces cuando llego a la siguiente línea, nuestra variable token no es nadie para tener la cadena. Está bien, así que ahí vamos hablando son objetos hablando. Nuestro saber cómo es esa cadena llamada token. Justo después Lo estamos guardando en almacenamiento local. Entonces solo voy a ir y saltaré hasta la última línea aquí. Fueron devueltos true el. Solo te voy a mostrar dentro fuera del navegador en almacenamiento local. Entonces si hago clic derecho, ve a inspeccionar elemento o herramientas de desarrollador para que puedas dispersar si yo si tienes f 12. Lo sentimos, pero cuando vas a aplicacion on, entonces en aplicacion vas al almacenamiento local y luego al sitio verás que tienes esto nosotros hablando. Está bien, entonces este es otro que tuve de otros experimentos. Simplemente eliminaré que posea no necesario. Pero tenemos fuera de ficha. Entonces ven aquí está tratando de reconectarse a Serverless porque estamos aquí sosteniendo o progresando buscando todo para el trabajo de mano. Entonces déjame solo presionar si tengo que seguir adelante, entonces creo que tacos registrando más de una vez. Entonces cuando en realidad entra, ya sabes lo que es No. El estado de autenticación ha cambiado porque estamos viendo las escrituras de nombre para mostrar. Recuerda dónde agregó el tema como el reclamo de nombre en eso es lo que se está mostrando aquí el día. Tenemos los botones del logotipo, así que no, estamos seguros de que nuestro largo en funcionalidades trabajando que analizó con éxito son los reclamos del token on Consiguió la información en la forma en que la necesitamos. Está bien, Así que si sigo adelante y hago clic en lock go, vamos a ver qué pasa en. Pero nadie está en casa. Todo está en blanco y estamos de vuelta. Activa Estado autenticado. ¿ Todo bien? No, quiero salir de la gente más de lo que voy a hacer un experimento del menú para que podamos compartir en esto juntos. Entonces en el menú de knave, voy a añadir otra sección para autor como uso solo para experimentos. E. Por lo que quiero exhibir agujero. Se puede mostrar algo del pie un papel y no a otra regla. ¿ Verdad? Entonces voy a crear otra vista de autorización. Pero esta vez va a tener un parámetro son un atributo llamado Reglas igual a Administrador. Entonces, dentro de esto, sólo tengo algo llamado Ciertamente llorado. Entonces quiero hacer otra así. Y entonces éste se va dedo del pie tienen la regla para el cliente encendido. Entonces voy a decir costumbre temprano. Entonces eso significa que cuando alguien que es administrador registra y debe estar viendo el enlace de administrador encendido cuando un cliente lo ama, se debe ver personalizando en. Cuando no estás amando, debes ser visto. Deberías ver ninguna de las dos. Está bien, así que sigamos adelante y volvamos al teclado. Entonces intentemos esto otra vez. Por lo que inicia sesión. Onda fue a iniciar sesión como Delia, que es cliente, y lo en mis puntos de descanso. Simplemente quitaré el punto de descanso y dejaré que continúe por Dwell. No estamos viendo lo que esperábamos y sospecho que es porque el área no tiene una regla de cliente apegada a ella. Pero solo voy a seguir adelante y conseguir que las cadenas de tokens inspeccionen elementos eran la aplicación. Entonces solo voy a desacreditar este yo mismo en cambio, fuera tratandoa la gente aplicación de este Echa un vistazo a la clave en auditoría Art Deco ni pad on. Si miramos, vemos el t el token. Por lo que obtenemos el tema que exitoso. Pero entonces te das cuenta de que no hay ninguna regla apegada, ¿verdad? Entonces si miras la anterior que ves ahora tenemos el rol de administrador de reglas encendido entonces aquí ella no tiene la regla porque creo en eso tal vez la creamos antes de configurar la sección de reglas. Por lo que no hay apegado real a ella. No hay reclamo. Entonces no se despidió nada sobre la situación de las autorizaciones, ¿ verdad? Entonces vamos a probar otro usuario que probablemente tenga un cliente se adjuntará o, bueno, déjame sólo tratar de agregar media, primer lugar, en primer lugar, así que déjame probar el admin iniciar sesión, y vemos el anuncio middling aparecer. Entonces por lo menos sabemos que está trabajando dedo del pie en cualquier medida, correcto, por lo que aparece la intromisión del anuncio. Si admitiendo ser un corto para ti, entonces tal vez puedas retroceder en asegurarte de que habías configurado al usuario administrador si admin no iniciaba sesión. Además, recuerda que si estás usando el administrador que teníamos que ceder, um, um, eso es lo tendría yo, o habríamos establecido el nombre de usuario. Por lo que en realidad está buscando en el uso del infield cuando estás iniciando sesión en él. En base a la cancha de las vialidades en el controlador AP I del usuario. Se está iniciando sesión usando el nombre de usuario y contraseña, ¿verdad? Entonces creo que cuando hicimos los usuarios semilla, dijimos admin es el uso y humano y admitir librería dot com es la dirección de correo electrónico, ¿ verdad? Así que sí asegúrate de que ese sea su carrito. Siempre se puede entrar a la base de datos. Andi pone el nombre de usuario para que sea la dirección de correo electrónico, así que póngalo tanto para el normalizado usándolo en el nombre de usuario como en Dragon, y deberías estar bien. De lo contrario, probablemente puedas simplemente seguir adelante e intentar crear un nuevo usuario administrador el. Entonces inténtalo de nuevo. Está bien, pero al menos vemos que funciona la funcionalidad de registro? Sí vemos dónde está funcionando la autorización de reglas, como se esperaba. Déjame probar un usuario diferente, tener durante una librería dot com. ¿ Quién es cliente? Ahí vas. Entonces si tratamos de registrar a alguien nuevo, así que déjame intentar registrar a alguien en. ¿ Verías París en el libro Levantó Coma me Han arrancado la zanahoria por mal camino. Toca ese inicio de libro. Com. Usa la misma contraseña. Andi. Bueno, parece una frase en el botón, y cambia ¿Qué? No del todo lo que deseaba. Pero ahí es cuando. Entonces cuando hacemos clic en registrarse, será la A P que llame y luego redirigirnos a la pantalla de inicio de sesión, ¿ verdad? Entonces si digo que estoy registrando en una librería de estatuto, no vienen y luego inician sesión, entonces vemos touch logueado. Ella es una cliente, así que ve a su cliente irse. Muy bien, entonces vemos que acabamos de probar en el registro en log in cosas en Sí, ahí, ciertamente a cosas que necesitamos limpiar sobre normalizar en el camino. Pero el gran beat off el trabajo está hecho. Entonces una cosa que quiero limpiar es el botón de registro, así que esto debería de registrarse Todo bien en. No creo que haya nada más ningún otro asunto importante. El único otro tema, como dije, sería simplemente asegurarse de que usen el nombre en su base de datos sea en realidad la dirección de correo electrónico. De acuerdo, porque recuerden, estamos preguntando a la persona junto con el correo electrónico y la contraseña, y estamos revisando esto por defecto. Está comprobando la sensación de nombre de usuario en el campo de dirección de correo electrónico. Entonces si la dirección de correo electrónico no está en el nombre de usuario y normalizar uso Indian siente, entonces no funcionarán. Muy bien, eso controla la distribución de usuarios. Andi, con liquidación inicial antes, cree aplicación causa configuramos todos fuera de los archivos, Nosotros configuramos el inicio de sesión bajo registro. Y así cuando volvamos, sólo revisaremos todas esas cosas en Consulta nuestros cambios en remolque. Nuestro proyecto sobre Levántate. 42. Revisar y añadir cambios a GitHub: ustedes chicos, bienvenidos de nuevo. Esto es más de un poco de revisión y video de pollo, y sólo estaremos pasando por algunas de las modificaciones que hicimos y en ningún orden en particular . Por lo que apenas estoy empezando con el modelo de usuario. Recuerda que sentimos, aunque el modelo de registro con la dirección de correo electrónico y contraseña fusiona que necesitamos. También seguimos adelante y creamos el modelo de respuesta de token que usamos para analizar los datos vienen de la respuesta de token. Después de Logan, agregamos las páginas de log in love boat e hicimos algunas modificaciones a la página de registro. Agregamos un nuevo proveedor en el formulario fuera del proveedor estatal de autenticación Ikea en este proveedor de estado de autenticación nos tenía, incluyendo las bibliotecas de almacenamiento locales así como la biblioteca token 100. ¿ Cuál nos carga dedo del pie, París o fichas? Ya sabes, um, hacer alguna evaluación, guardar el token en manipulado, hablando de la manera que queremos. También agregamos notas log in lago log y funciones personalizadas en este archivo. En nuestro servicio de autenticación, repositorio agregó las funciones de inicio de sesión y logopedas en el inicio de sesión que d token serializado almacenar el valor usando almacenamiento local. Por lo que también tenemos que inyectar eso en las autenticaciones que proporcionan en nuestro repositorio de autenticación logotipo de Andi para ser simplemente llamarlo y eliminar el token almacenado en nuestro menú. Hicimos algunos ajustes donde nos damos cuenta para que podamos autorizar ciertas partes para que podamos autorizar algo a ser visto por reglas particulares en las que podrían estar los clientes. O simplemente podemos hacerlo en base al estado de autenticación en su momento. Correcto, nos aseguramos de agregar el nuevo punto final para iniciar sesión aquí en para el up the razor. Cambiamos todos los valores predeterminados en remolque, autorizamos vista de carretera y estados de autenticación en cascada envolviendo la vista de diseño. Algunos de los cambios más importantes, sin embargo, sucedieron en nuestra puesta en marcha que CS, donde podemos asegurarnos de hacer representación fuera de nuestro proveedor estatal para que podamos inyectarla en también asociados esa clase personalizada con el proveedor estatal dentro del contenedor de inyección de dependencia en. Entonces también inyectamos el manejador de seguridad dentro para que no tengamos que declarar objetos fuera de estos dos en todas partes. Nosotros sólo, ya sabes, sólo lesionamos la dependencia y luego usamos eso en consecuencia. Entonces con todos esos cambios realizados, solo vamos a seguir adelante y revisar las soluciones que hacemos click derecho, ir a comprometernos, poner en nuestro mensaje en Ese es mi mensaje. Entonces después de que hayamos puesto eso, solo tienes que seguir adelante en Haga clic en el IRA y comprometer todo y hundirse. Una vez hecho eso, podemos pasar a nuestra siguiente sección, donde empezamos a activar algunas operaciones de multitudes. 43. Configura el repositorio y el servicio del autor y: ustedes chicos en esta lección estarán configurando nuestro repositorio de autor para nuestro blazer. Te aplico en dime solo Oh, solo tengo el archivo del repositorio base abierto para que podamos refrescarnos Nosotros lo que configuramos aquí. También tienen el lustre de viaje base, que está heredando. Ah. Http. Clanes en más o menos está pasando por la actualización de eliminación de creación en. Bueno, sólo las operaciones de la multitud. ¿ Verdad? Por lo que todas las operaciones de multitudes, las funciones de base están todas alineadas aquí. Entonces la idea es que para cualquier clase y en este caso autor, vamos a heredar de este repositorio basado donde t es la clase o la entidad. Por lo que tenemos que crear sobre autor, entidad o modelo. Ya que están usando el modelo de palabras clave más abajo o tú me pongo de lado, Entonces vamos a configurar el revuelo de reporte. Entonces déjame empezar por crear los modelos de autor. Yo solo voy a mi madre modelos siguen ambos agregan clase. Yo lo estoy llamando autor, y luego voy adelante y pego anuncio, y más o menos este modelo de autor se va dedo del pie hay que encarnar lo que sea que pretendemos pasar por la A p así recuerdo que sabemos la respuesta que estamos recibiendo cuando miramos sobre autor, um o al menos la documentación dentro para indicarnos lo que sentimos que necesitamos tener son representar para obtener los datos completos de nuestra respuesta de Jason yendo del FBI. Entonces, en esencia, realmente necesitábamos parecernos y entrar en el proyecto. Yo sólo traigo a la clase de autor. O tal vez para estar menos relacionado con los datos, el DT oh, clase. Correcto. Entonces al menos el detalle del autor, si quieres que regresen todos los datos, tendría que parecerse a los detalles del autor, ya que eso es realmente lo que está volviendo el autor get, más o menos el tiene todos los campos que cualquier otro detalle sería, incluso en su operación específica. Entonces lo que voy a hacer aquí en realidad es simplemente copiar todo desde el GTO en adelante, y solo estoy viviendo de esta manera. Procediencia. Obviamente, si estás desarrollando encima de en un par que no construiste, entonces tendrías que hacer lo mismo donde creas una clase en entonces modelo se siente basado lo que se siente en la respuesta Jason se espera en un Jason solicitud. Por lo que sólo tengo este modelo fuera de cómo se verá el autor. Enseguida, entonces. Bueno, esto tiene una lista de libros. L, uh, poner esto como un libro porque vamos a tener un modelo de libro, y entonces puedo crear eso. Tan solo genera eso en un nuevo archivo. Llegaremos a ese más adelante. Sólo estoy haciendo eso para que tengamos todos los campos cubiertos. Pero lo que también voy a hacer aquí es agregar algunas validaciones porque entonces cuando estamos usando el modelo, sobre todo en la vista, porque recuerda que estos modelos de vista aérea que estamos haciendo, necesitaremos tener algunos validación. Muy bien, Así que seguí adelante y agregué alguna validación de nuestra idea, y luego puse requerido sobre todo hasta la bio. También ponga los nombres de visualización nombre, apellido en la biografía en. También pon una validación de longitud de cadena en la parte superior del comprador. Correcto. Por lo que todas estas cosas recuerdan salir de un cuatro actividades de autenticación jugarían algún papel, lo invitaron en el formulario antes de que realmente enviáramos los datos a través del FBI. Entonces sepan que tengo mi clase modelo que voy a estar usando para taxi los datos desde y hacia la aplicación. Y entre la aplicación y el FBI, no puedo ir adelante y crear mi repositorio de autor a en escuchado desde el repositorio base. ¿ Verdad? Entonces sólo voy a ir a mis contratos para el primero y voy a añadir una nueva clase son interfiere forma Conoce que manda interfiere. Aminu interfiere en. Voy a llamarlo yo autor repositorio. Y luego agregamos eso entonces si es interfiere, siempre tengo que recordar poner público. De lo contrario te dará una época. ¿ Verdad? Por lo que estamos creando un repositorio público en entonces este repositorio público lo lamentamos. Esta interfaz probablemente llamada I repositorio autor estará heredando de nuestro repositorio basado en I . Estaremos dejando que herede dentro del contexto fuera de autor. Entonces simplemente vamos adelante y nos aseguramos de que tengamos representación fuera de esa clase modelo llamada autor? No, no, que tenemos el contrato. Tenemos que armar el rip Lester. Por lo que en la carpeta de servicio, voy adelante y hago clic. Agregar, y luego voy a agregar una clase llamada repositorio de autor Esta vez Andan author posit Ori va a heredar del repositorio base una vez más en el contexto off author. Por lo que note las interfaces que heredan de los interfieren. Pero entonces las clases concretas que heredan del repositorio basado en concreto dentro del contexto de autor así como su contrato. Entonces solo voy a seguir adelante e incluir eso. Todo bien en entonces, después de implementos. Bueno, en realidad no tengo que implementar nada porque todo ya está implementado dentro fuera de la base. Es ridículo. Sólo si tuviera, como, otra operación que quería llevar a cabo en el repositorio de autores. Entonces tendría las funciones personalizadas aquí en luego implementarlas aquí. Pero como se relaciona con las funciones base, no tengo toe implementar nada de nuevo dentro del repositorio porque todos están en el repositorio basado, ¿ verdad? Saber lo que esto está diciendo es que necesito inicializar yo clientes CTT o necesito inyectar el cliente como de costumbre. Fábrica de clientes Http en los clientes de espolón. Y luego incluyo lo que falta en entonces necesito mi constructor, y este constructo va a verse un poco diferente porque ahora está diciendo que cuando inyecto en remolque, el repositorio de autor también debo inicializar se pasan por encima el valor inyectado en la base. Correcto, Eso es todo lo que está haciendo. Por lo que una vez que llamemos a autor Repositorio, va a dependencia inyectando el cliente http en el repositorio de autor así como el repositorio base en a través del repositorio de autor, podemos realizar cualquier operación, pero nosotros tener dedo hágalo en relación con el autor de la clase así que no puedo usar el mismo revuelo de reporte para libros después de eso. Por lo que tengo que crear el modelo de libro diferente al lema del autor. Andi tiene que tener un repositorio diferente para libro. También. Ahora, después de que hayamos terminado de hacer todo fuera de esto, el último paso es asegurarme de que lo tenga dentro fuera de la puesta en marcha. Um, bootstrap por lado va a configurar servicios y asegurarme de que agrego una representación fuera del repositorio de autor alto en la clase concreta, y van a seguir adelante e incluir lo que necesite ser. Creo que por las de autenticación ocular, no tendremos que volver a incluir nada. Y entonces eso es todo. Entonces cuando regresemos, comenzaremos a configurar las páginas de autor y el ajuste de la recuperación de los datos a través del FBI 44. Autores de la lista de configuración: Oigan, chicos, bienvenidos de nuevo en esto. Escucha, vamos a estar activando nuestra página de índice de autores, así que sólo voy a empezar rápidamente en debajo de las páginas. Entonces de la misma forma que empezamos a segmentar nuestras páginas en carpetas de remolque justo en las que se crea una nueva carpeta en las páginas. Y voy a añadir nueva carpeta, y voy a llamarla Bueno, señor, o autores. Está bien. En entonces, en el del autor voy a añadir un nuevo componente sobre esto es ah, componente de afeitar llamado Index. Está bien, así que sólo estoy tratando de mantener alguna estructura. Tenemos índice aquí, que es la página principal, como saben, Pero entonces una vez que llegues a la sección de autor, quiero tener una página de aterrizaje y la primera página, Naturalmente, verías o quieren ver cuando se hace clic en otros serían los autores en el en la base de datos. Bastante más truco. Entonces, ¿por eso he hecho esto? No, en la parte superior. Voy a asegurarme de que especifica el camino de Ph justo en. Entonces. La diferencia ahora es que yo puedo decir que es que es parte es simplemente slash en lo que le dices . Se trata de autores, luego slash. Está bien. Entonces por esa lógica, para llegar aquí, tendrías que escribir autores slash Así que eso significa volver en mi menú de duendes. Yo sólo voy a conocer ese cambio antes de olvidar donde tengo a los dos últimos autores siendo solo autores. Voy a ver autores slash Sweet sabe que debería ir autores, luego la página predeterminada ahí, que es o índice ritmo. Recuerda que el nombre fuera del archivo no tiene mucha relevancia en la ruta es lo que pongamos como la ruta de la página que realmente importa. No, voy a necesitar algunas cosas en esta página uno Voy a necesitar inyectar, tal vez el gestor de navegación. También voy a tener que inyectarme mi repositorio, luego usar el reporte. Esas son las tres personas que acabamos de crear para poder usar que voy a tener que imp apoya los espacios de nombres y así sucesivamente. Entonces estamos viendo cuando estamos haciendo la autenticación que por todo lo que tenía que poner en las declaraciones de uso no quiero después de poner declaraciones de uso cada vez que estoy haciendo una página porque voy a estar usando modelos, y estoy va a estar usando mucho contratos. Entonces ya sabes entonces si algo cambia, tendría para mí el cambio en todas partes. Entonces por eso tenemos nuestras importaciones. Yo me dejo ver si puedo encontrarlo rápidamente. Nuestras importaciones puntean navaja o subrayan las importaciones que resultan cuando incluimos cosas aquí. Está incluido en general, así que puedo y solo volveré a la página de inicio de sesión. Yo sólo puedo tomar estos viejos bien, y sólo voy a contender y fui a esperar toda la época. Deténgase aquí, ahí mismo en la escuela de la era porque no falta la declaración de uso. Pero los voy a poner dentro de las importaciones que navaja. Entonces, cuando vuelvo a esa página, ves que las líneas rojas no desaparecen porque, bueno, no es ver la referencia. Entonces al poner las referencias en las importaciones y hacer globales a todo arriba tan moviéndose en el índice del dedo del pie atrás No, ya he importado lo que necesito para poder empezar a trabajar, aunque es mucho miedo. Como dije, voy a necesitar una instancia fuera de mi autor, repositorios de autor. Sólo estoy llamando a ese informe de subrayado, y luego puedo empezar con la diversión. Muy bien, entonces veamos qué tenemos que hacer ahí. Entonces quiero imprimir dedo del pie una mesa que, ya sabes, por cada autor que regrese, voy a estar imprimiendo las reglas. Entonces si alguna vez has usado NBC en el pasado o algo que dot significaba relacionado, tenemos que generar la tabla. Entonces esto debería ser del territorio, porque si no, entonces Bueno, vamos a hacer juntos de todos modos, así que voy a empezar con una mesa. Andi, usando bootstrap. Puedo cumplir con el look estable un poco más presentable de lo que sería por defecto. Por lo que puedo incluir mi tablero de mesa, responsive on. Yo sólo voy a ver mesa. Bueno, sí, Vamos a ocuparnos de esos a la mesa hasta que estemos respondiendo. Entonces puedo tener una t t sección de cabeza derecha en. Entonces en esta sección, voy a tener un TR encendido. Entonces el TR albergará algunos TDs. ¿ Huh? Entonces los TD's tendrán los encabezados o los encabezados para Bueno, en realidad, en realidad, habría Th es mi trasero así que th porque sus bateadores de mesa. Muy bien, así que una mesa bateadores para diferentes columnas. Por lo que una columna sería el nombre de pila. El otro sería el apellido del entonces. Bueno, no estoy seguro de querer mostrar la biografía completa aquí mismo. Entonces, por ahora, sólo voy a usar tres fuera de ellos y voy a llamar a ésta acciones, ¿ verdad? Las opciones solo albergarán algunos botones para nosotros. Entonces eso está en la sección de cabeza fuera de la mesa ahora en el cuerpo o para empezar con el cuerpo y se fue a decir t cuerpo encendido, luego en cuerpo T. Voy a tener un bucle para pasar por la colección fuera de autores. Correcto. Por lo que no hemos declarado nada. Esa es una colección de autores. Entonces voy a hacer algo. Vas a ver algunos errores, pero los trabajamos más, así que vamos a tener un bucle de cuatro cada uno, lo que va a salvar a nuestro autor. Algunos iban a decir por cada autor lejano en, y lo voy a llamar modelos. Por lo que me gusta llamar a mi cualquier clase que esté representando el contexto de datos para ah componente son para nuestra vista. Yo sólo lo llamo modelo. Simplemente parece claro. Correcto. Entonces para cada autor que vuelve al interior del modelo encendido, entonces lo que quiero hacer es generar una regla. Entonces para cada registro, esto representa un registro que se remonta de la lista fuera de registros que habría recuperado queremos que nuestro papel en el Metro va a tener ah columna. Entonces tenemos tres ahora mismo. Entonces sólo va a ser yo envié autor, lo que significa que quiero imprimir el valor de autor, y estoy seguro que dirá nombre. Entonces la inteligencia no me está ayudando, porque en lo que a eso se refiere, no sabe qué es el autor porque oficina va de un desconocido llamado modelo. Entonces eso está bien. Simplemente dejaré eso solo para Nome para pronto iniciado Pensamiento apellido en, luego para el hijo enfermo de bueyes. Voy a poner tres botones. Muy bien, entonces los botones que entrarán en la sección de acción serían Barton on, entonces voy a tener clase b t n Así que conseguimos ese bonito botón de tienda de lana en playa en dash primario. Entonces uno es para la vista, acuerdo? Y acabo de poner como un bombo como un separado. Bueno, se van a quedar lo suficientemente amables. No necesito pipa, así que solo dejo la suma total sin tres botones sugiriendo alguna estética, ¿ verdad? No. Para que, ya sabes, se vea presentable dentro del botón. Entonces esto va a ser un botón de vista. Esto va a ser como un botón de edición. Por lo que probablemente quisiera decir Bt y advertir. Entonces es naranja. Este va a ser un botón de borrar, por lo que se leería, ya sabes, peligro. Perdón. BT y peligro no eliminar. Enseguida, entonces. Adentro apagado el botón. Ya sabes, tienes la opción de desescribir en las ediciones de la palabra. Escribir sobre la cosmovisión. Voy a usar algunos iconos aquí. Alguien para decir hilado y luego clase encendido entonces habría visto algunos de los iconos que se utilizan en el nominado o así para obtener un ícono estaban tras. Creo que a la biblioteca se le llama iconos abiertos. Siempre pueden ir a su página web y mirar, um,a um, lo que yo llamo opciones. Hay, Pero voy a decir por qué Dash libro. Está bien, entonces creo que eso se vería lo suficientemente bonito como ah de hecho como una indicación de que esa es la vista, ¿ verdad? Entonces una vez más, si escribes toda la palabra, entonces obtienes un botón con el ícono en la palabra, si eso es lo que deseas. Por lo que para avisar sobre para así sucesivamente. Perdón por editar. Voy a poner un lápiz para sugerirle a alguien que eso es todo lo que te pones idiota. Entonces creo que tienen uno llamado borrar, lo que me daría, como un poco extra sugerir, Bueno, esto es para quitar. Está bien, así que esto es sólo algo de estética. Webvan lo previó todavía. Entonces ya sabes, puedo apreciar el aire, probablemente ansioso por ver cómo va a ser todo esto. Pero vamos a meternos en algunas cosas de la cancha y en las carreteras de Sartre, nuestra flecha aquí. Entonces en la corte, lo primero que siempre te recomendaría hacer es declarar lo que sea que dijiste , se va a declarar la modelo, Así que vamos a declarar en una lista fuera de los autores que escriban. Voy a llamarlo modelo y luego ver cómo esa línea roja simplemente desaparece, y luego todo cae en su lugar. Entonces, si yo fuera a usar inteligencia de lo que tú serías capaz de ver todo para la modelo porque no, tiene sentido, ¿ verdad? Entonces por eso teníamos la línea roja. Dicho eso, no tienes que hacerlo en ese orden. No tienes a la radiación de. Entonces declaras el modelo. Podrías hacer esto primero el, luego derecho adicional. Y probablemente hubiera sido más rápido para ti si lo hiciéramos de esta manera. Pero yo sólo estaba tratando de hacer un punto. Entonces el orden en esta situación realmente no importa. Es solo cualquiera que encuentres más fácil de hacer. Está bien. Entonces lo siguiente que queremos hacer es decirle al componente que cuando señorice, debe encordar los datos o al menos sentir estos datos porque en este momento esto es lo que llamas No, no hay nada en él. Es justo ahí. Pero no hay nada en ella, lo que puedo decir te llevaría a un error cuando las leyes del discurso. Porque entonces te diría que hay otra excepción porque aquí no hay nada para generar la tabla desde. Muy bien, Entonces lo que quiero hacer aquí es decir, anular sobre la forma predeterminada que se muestra para cuando se carga la página, que se llama uh mientras vamos a su de función protegida. En primer lugar. Entonces voy a anular todos los calificativos para la función primero y es una tarea sobre inicializado un sumidero en. Después cerramos las llaves o Prentice abrimos las llaves encendidas luego adentro fuera esta función queremos ver modelo es igual a on. Entonces podremos aliviar el resultado de nuestro informe. Recuerda, las repeticiones son objeto que representa autor Repositorio, ¿verdad? Así re tire atracado en. Yo quiero conseguir segundos que obtengan Y entonces tengo que conseguir algún miembro que definimos para llegar a tener uno que va a devolver todo y luego uno que devolverá un autor específico, ¿ verdad? Entonces institución quiere conseguir todo y todo lo que requiere como punto final es nuestro como parámetro es el endpoint o la niña ¿verdad? Por lo que almacenamos todos los cuatro euros dentro de para clase estática llamada en puntos así que solo puedo ver en puntos pero luego noté esto No Oh bueno, ya está incluido. ¿ Por qué está incluida, o por qué está disponible? Eso es porque ya lo importó así que si no está encendido, no lo hiciste. Puedes seguir adelante e importarlo a la estática porque eso es algo Bueno, vamos a usar por todo el lugar, ¿ verdad? Entonces, endpoints que autores en puntos. Está bien, en dso ¿Qué pasó? Es esa la carga de las páginas Se va a cumplir con esta convocatoria en. Entonces se llenará el modelo. No. El problema es que por cualquier cualidad sincrónica, no es la playa no se va a sentar y esperar hasta que esto se haya cargado. Entonces eso significa que si los señores de la página encendido para el momento en que el modelo de carga de página está vacío, vamos a conseguir que ninguna era. Entonces lo que voy a hacer aquí y lo hubieras visto en algunos de los ejemplos, creo que en el fetch necesita una página. Lo que hicieron fue que tenían una declaración if con el contenido. Entonces dijeron algo así como, Si yo diría, Si el modelo en mi situación, que está sosteniendo todos los datos, si eso es no, entonces haz otra cosa mostrar mi tabla. Muy bien, Así que estoy diciendo que si cuando este modelo de Speech Lords todavía no tiene ningún dato, entonces muéstrale algo más. Ya sabes, en lo que voy a mostrar de verdad rápidamente está sólo esa alerta encendida. Voy a llamarlo alerta. Color despreciable oscuro o déjame usar en Ehlert. Secundaria en, entonces sólo voy a decir datos de lording. Entonces cuando los señores de la página en, ¿sabes que los ojos U abiertos visibles. Pero esto sigue siendo todavía está esperando una respuesta del FBI. Porque no sabes cuánto tiempo va a tardar esta llamada del FBI, por favor nuestras narices para decir, Bueno, puedes mostrar algo aquí, que el usuario sepa que está pasando, y luego una vez que sucede, entonces nos ponemos sobre la mesa. ¿ Todo bien? Está bien. Entonces, no, te quiero decir esto para prueba de carrera. Yo solo quiero volver atrás y asegurarme de que tengo las partes correctas para Y así esto es autores on. Yo sólo voy a seguir adelante, golpear, correr, y luego eso. ¿ Ver? Está bien. Entonces cuando nuestros señores de aplicación, solo voy a iniciar sesión rápidamente como alguien que hubiera creado en el pasado. ¿ Todo bien? Me encantan en. Entonces voy a ir por encima del pie Autores Andi. Pongo un punto de ruptura aquí en el repositorio basado get for. Está bien, así que vamos a pasar por ahí. Yo sólo voy a saltar derecho no te pongas los pies después de que hayamos despedido la solicitud. Y esto no creo que esto vaya a funcionar en morir de corriente de lo que voy a explicar por qué. Entonces conseguimos ah, 401 acorde en nuestra respuesta. Por lo que para un medio sobre autorizado. Entonces si recuerdan, cuando montamos sobre un control P I de cuatro autores habría autorizado todo el controlador. Y así a pesar de que estamos registrando el arriba el FBI nos manda que no estaban autorizados Y así si solo presiono continúan aquí los síntomas que sólo vamos a ver cargando datos. Entonces quiero decir, ¿verdad? No, estoy regresando. No, solo No, um probablemente podamos hacer que regresemos algo un poco más intuitivo en. Entonces toma una decisión basada en lo que regresamos. ¿ Verdad? Entonces lo que voy a hacer aquí es que voy a dejar de depurar. Entonces lo que pasa es que cuando creamos los clientes, recuerden que en realidad estamos creando una nueva planta cada vez, entonces, sí, creamos un cliente aquí. Pero cada vez que estamos a punto de hacer una solicitud creamos un cliente en. Entonces qué pasa que una vez que se crea su cliente , manda la solicitud. Pero necesitamos incluir en esa solicitud, el encabezado de autorización. Entonces, sí, quizá lo hayamos hecho en el pasado. Creo que lo hicimos en el P I fuera proveedor estatal ¿estaba ahí? No. Lo hicimos en el repositorio de autenticación, Onda. Creamos un cliente de la misma manera. Entonces lo que pasó cuando asignamos el valor aquí fue que asignamos a ese bateador por defecto también. Esta instancia particular fuera del cliente. Entonces, en realidad, podríamos haberlo hecho sin esta tierra. ¿ En serio? Porque lo incluyó como una ficha portadora en el bateador para este cliente no es globalmente. Entonces lo que voy a tener que hacer para modificar mi archivo de repositorio base es que puedo crear una función que solo diga, Bera hable, ¿ verdad? Entonces si creo privada de un privado lo siento privates tarea para devolver cadena Todo bien, Private persiguiendo tarea para devolver una cadena. Y yo sólo voy a llamarlo pone cerveza a lata. Está bien, sólo asegúrate de que mi ortografía sea correcta. el. Entonces lo que esto va a hacer es simplemente regresar o conseguir el token de cerveza almacenado en el almacenamiento local . Entonces eso es volver en aburrir la escuela donde c consigo ¿Dónde está? Es que tengo 1/4 de donde consigo el token al portador. Oh, no , no está en este. Sería en el proveedor del estado de autenticación donde c obtengo el ítem anulado tokens. Entonces sólo voy a pedir prestado esto justo en. Entonces lo que voy a hacer es dejar que esta función simplemente devuelva eso Así que un retorno on, entonces estoy viendo conseguir almacenamiento local a la vuelta. Todo eso, lo que no significa después de inyectar almacenamiento local en remolque. Mi repositorio basado. Por lo que me apuro y hago eso, empezando por la declaración fuera de la nueva propiedad e incluyendo lo que sea que las bibliotecas necesiten ser incluidas. Y luego simplemente puse eso dentro fuera de nuestro control. Calma constructor. Perdón, Andi, solo rompe clientes. No me voy demasiado lejos de la pantalla encendida. Entonces solo haremos la inicialización de un Sean aquí. No, porque he incluido el almacenamiento loca en el repositorio base. También necesitaré asegurarme de que mi repositorio de autenticación No, no la autenticación segura. Mi repositorio de autor, que está heredando de la base, también tiene representación. Por lo que necesitaré inyectar también el almacenamiento local por aquí. Entonces solo copiaré y pegaré estas líneas para poder moverme un poco más rápido. Está bien, en ese entonces, yo en base sólo c coma. almacenamiento local escribe. Sólo estoy pasando eso a la bestia también. Entonces eso es solo un poco de cirugía que tuvimos que hacer, pero en última instancia el propósito de la cirugía para que podamos buscar en el almacenamiento local cuando estamos a punto de hacer Ah, solicito en conseguir lo que sea que platica está ahí para que podamos incluirlo en el cliente. Por lo que estoy creando un objeto cliente justo aquí el día. Simplemente voy a volver a mi repositorio de autenticación en el interior fuera de la función en registro donde digo cliente que por defecto. Yo sólo voy a pedir prestado esto, así que solo estoy copiando y pegando cancha porque tengo el trimestral, pero es sólo en un lugar diferente, ¿ verdad? Entonces justo después de crear el cliente, voy a dar un paso a esta línea. Pero entonces voy a decir que el valor que se está pasando aquí es el valor que va a ser devuelto por nuestra función. Consigue que la cerveza hable. Muy bien, entonces. Simplemente voy adelante e incluyo. Muy bien, Así que cada petición que necesitamos al portador hablando algunos literalmente nada una copia en puerta. Perdón. Esto debería ser un peso. Muy bien, algunos sólo en remolque. Copia esta línea en después de cada lugar donde creamos un objeto cliente. Yo sólo voy a ritmo eso ahí porque necesitamos la plática al portador en cada vez que llamemos o un p I Muy bien. Por lo que solo lo agregué para crear, actualizar , um, y se pone todas las funciones hasta arriba en el repositorio base sin deportes, a pesar de que la cerveza hable incluida en el encabezado. Entonces intentemos esto otra vez. ¿ Todo bien? Entonces intentemos eso otra vez. Ya estoy ingresado como puerta y libro almacenado. Vamos, atrégueme . Tan solo asegúrate de tomar elementos de inspección. Goto aplicación Onda Y asegúrate de que el token es que están bien encendidos entonces. Cuando hago clic en autores, se ve cargando datos en. Entonces golpea mis puntos de descanso en. Pongo un punto de ruptura en el propio controlador esta vez, ¿ verdad? on get author. Entonces si no tuviste maravilla, entonces probablemente ya te hayan visto los autores. ¿ Qué? Tenía uno ahí. Porque lo que pasa es que si lo es, si entra una solicitud no autorizada, nunca, jamás calentaría ese controlador, que es lo que pasó antes, justo para esa acción. Perdón. Entonces porque el autoriza ahí y se autorizó con el token, No, No, le pegamos eso en, entonces solo puedo seguir adelante y dar click Continuar, que trae a mi origen en punto de ruptura demostrándome que me estoy volviendo a subir . De acuerdo, respuesta en. Entonces. Sigo en DNO. Estoy viendo a mis autores regresando de mi AP I Así es como funciona el token portador en practicidad. Por lo que sí tuvimos un poco fuera de trabajo, son propiedad tanto sentados en ambos desprendiendo el dedo del pie del cliente. Úsalo. Entonces no, tienes un ejemplo de vida real fuera de cómo funciona. Y se puede ver que somos nombre, apellido en acciones. Y luego tenemos nuestros pequeños botones con los iconos. Entonces todo se está juntando muy bien? No, Como dije, no fue muy intuitivo que acabara de regresar. No y no hicimos nada con él después de que acabamos de regresar. No, porque entonces se sentaría en su ver datos bajos para siempre. ¿ Verdad? Entonces lo que podríamos hacer es probablemente incluir otro campo que será o puede ser un tipo de retorno diferente o giro más complejo. El tiempo de retorno en este tipo de devolución probablemente tendría algo como, um, cuál es la respuesta anotada así como tal vez el acto, unos pocos para que los datos reales vuelvan a aparecer. Entonces podemos evaluar si la respuesta anotada está bien, entonces. Bien. Si no está bien, entonces mostramos un mensaje en consecuencia. No voy a querer hacer eso. No, podemos dejar eso como un poco de actividad. Por ahora, sabemos que podemos cargar fuera de la lista. Autores viniendo director del FBI, vemos que nuestra autenticación está funcionando tanto localmente en la U. I. Onda a través del FBI porque fuimos expulsados por buenas razones. Y no, somos aceptados una vez que arregles nuestro tribunal De acuerdo con todo bien, que eso concluya por sentarse, fuera o en experiencia para los autores. Cuando regresemos, empezaremos a hacer que funcionen a estos empieza con nuestra visión 45. Autor de la visualización de la configuración: Oigan, chicos, bienvenidos de nuevo en esto. Escucha, vamos a estar configurando nuestro componente de vista para nuestros autores. Ahora, La realidad es que no estamos mostrando todos los detalles aquí en la página de listado. Hay otras cosas, incluyendo tal vez la bio sobre lo que es el comunista? Una foto de perfil. Entonces en este momento estamos en su nombre apellido y queremos que cuando hacemos click en el botón , eso sugiere que le hagamos click para ver el registro particulario de que se alejará a unos componentes diferentes, mostrando nos esa información relevante. Entonces tenemos dos opciones y, bueno, bueno, voy a decir sus opciones del dedo del pie. ¿ Qué? Voy a usar uno, y me voy a centrar en uno, porque ¿qué? Ese es muy fácil. Entonces, en primer lugar, necesitamos cambiar nuestros botones. Entonces usé botones inicialmente, pero lo que debería haber usado donde se usan las etiquetas de tobillopara facilita este método fuera navegación. ¿ Verdad? Por lo que las etiquetas de tobillo son las más utilizadas Navigare son, um, etiquetas en html, por supuesto. Y ahí, cerca de la ciudad en un viaje en set una dirección. Entonces la dirección que vamos a estar usando aquí sería la dirección toe slash autores porque vamos a estar creando un componente en nuestros autores, Waldo Voy a estar llamando vista en entonces necesito pasar en algún parámetro que ustedes sabrán que necesita ver esta constancia en particular al respecto. Ese perímetro particular sería como el I d. Derecho. Entonces no estoy exhibiendo el i. D. aquí porque no creo que tenga que mostrarles la oficina que compré detrás de bambalinas. Lo necesitas. Por lo que tengo que decir en signo autor punto i d y eso va a crear eso vinculado para saber que debe ir a la vista o cualquier componente que tenga esta dirección. Muy bien, así que centrémonos en la vista ahora mismo. Entonces para poder llegar, voy a tener que ir a mi carpeta de autores, seguir adelante y agregar un nuevo componente, y lo estaré llamando vista. ¿ Todo bien? Algunas personas lo llaman detalles. Entonces, cualquiera que funcione para ti, entonces voy a asegurarme de que tenga la dirección. Autor barra inclinada vista barra inclinada en. Entonces preveo el hecho de que sobre yo d los valores se van a pasar por alto. ¿ Todo bien? Entonces, cuando esto en el enlace de índice cuando se trapea directamente estará buscando cualquier componente que tenga, bueno, bueno, esto como su página Onda una sección por algún valor. Muy bien, en ese entonces sobre la vista dijo, tenemos que asegurarnos de que hemos hecho provisiones para eso. No, porque tenemos un parámetro entrando. Tengo que hacer saber el pH que tengo un parámetro. Está bien en este parámetro va a ser un público on porque literalmente nos convertimos sobre unos palos. Sabemos que es un número, pero estará viendo sus palos. Tenemos que decir una cuerda. Entonces nos subimos al set, acuerdo? O tal vez podamos simplemente ponernos bien, solo vámonos, Solo ponte en marcha. Entonces en este momento, si hicieras este entero, sabemos que debería estar enterrado aquí, pero creo que te encontrarías con alguna era del compilador. No creo que dólares para compilar si se usa entero o cualquier cosa que no sea indicativo algún valor de cadena que viene a través tan bien? No, sólo para una vista previa rápida. Yo sólo voy a ver que soy gana una huella. El valor de la idea cuando se le hace clic bien. Entonces, autor, justo a la derecha. Autor. Yo d on, entonces sólo voy a mostrarles el valor que se está encontrando a través del parámetro. Entonces, solo afirmemos eso para dar una vuelta. Déjame solo asegurarme de que tengo todo listo aquí. Está bien, déjame solo dar clic. Inicio. Está bien. Por lo que nos gusta estar aquí el día. Voy a seguir adelante y dar clic a autores. Entonces voy a probar y vistas. Entonces si solo paso el cursor sobre ellos, realidad lo verás en los enlaces en la esquina inferior izquierda. Si es lo suficientemente visible, lo diferente me devalúa, apareciendo al final fuera del enlace, ¿ verdad? Y luego si hago clic en uno, se pasa y te muestra. El i. D tres yo buscaba tres siendo posible. O si vuelvo, miro a otro que c cinco y cinco. Muy bien, entonces sabemos que estamos pasando el parámetro con éxito. Entonces ahora lleguemos realmente a la parte divertida, que es recuperar los datos sobre mostrarla en la página, porque ver la idea no hace ninguna diferencia lo que queremos hacer. Vemos todo apagado, ya sabes, todo sobre el autor. Por lo que tendré que inyectar algunos servicios aquí. Uno siendo mi autor, publicamos solo voy a ir y sacar la línea fuera de cancha para mi autor Repo e inyectado ahí en. Probablemente también querré mi gestor de navegación. Y en realidad voy a llamar a los objetos suficientemente manager esta vez en lugar de no importarte. Simplemente me resulta más fácil decir en su, ya sabes, más indicativo fuera de lo que representa el objeto, verdad? Entonces dentro del cordón, también voy a tener otra propiedad pervertida y esta puede ser privada en esto va a ser off type author, ¿ verdad? Y este será mi modelo sobre lo voy a inicializar dedo del pie un nuevo objeto de autor. De acuerdo, entonces lo que voy a decir aquí, sin embargo, es que en la inicialización fuera de esta velocidad, Así que quiero oh, en la carga fuera de esta página. O mejor dicho, cuando el pH se ha cargado. Y sabemos que esta es nuestra función para eso en inicializado un fregadero. Quiero dedo del pie recuperar al autor con esta idea. Entonces voy a decir que el autor es igual o lo siento modelo llamé modelo de objetos. Entonces mi modelo para mi página es igual a esperar los resultados de mi reporte, que es por gente de autor que se ponen Entonces recuerda, tenemos que ponernos así esta vez voy a tener que pasar en el punto final. Andi en entero i d Así tengo mi in points file dot authors y point coma Pero entonces necesito el i d Que necesita ser un entero Así que eso significa que necesito decir int i d Y solo voy a usar idea minúscula porque esto es idee mayúscula, ¿ verdad? Entonces en ordenes iguales a en eso, sólo puedo convertir en ese análisis fuera de la I d volea Comunión del parámetro. ¿ Verdad? Entonces ahora solo lo estoy convertir. Digamos que tienes diferentes formas de convertir piezas inductas. También tienes convertir no en 32. Entonces, ya sabes, este podría ser un poco más común en esa parte se limita a sólo cadena. Entonces me refiero a esta situación, ya sea uno puede funcionar, pero quiero que devalúe sea pasado como parámetro. Muy bien, entonces poblará modelo. Muy bien, entonces nos enfrentamos a lo mismo arriba aquí arriba, ¿Dónde? Cuando el modelo está vacío, puede que no se cargue o nos encontraremos con problemas. Entonces lo que voy a ver es IFOR en Scient. Si el modelo es equivalente en todo, entonces quiero mostrar un bonito mensaje o algo más encendido. Entonces queremos mostrar sobre la página real con los datos. Está bien, así que mientras está vacío, solo uso reutilizar este diff esta alerta y estoy diciendo cargando detalles del autor. Entonces ven que estoy repitiendo corte aquí y un principio de programación. No te repitas. Estoy usando estos. Dave está mucho encendido con el estilo exacto, Mucho. Entonces buscamos cómo podemos poner eso en un componente y simplemente cargarle un componente. Andi incluso pasó en el mensaje que pretendemos haber mostrado ahora mismo dentro de fuera que quiero mostrar los detalles de los autores así que voy a volver a usar una tabla en voy a darle las clases bootstrap, y entonces este establo es va a tener un formato ligeramente diferente. Entonces Bueno, déjame solo voy a poner atención a algunas estéticas aquí, así que voy a poner este establo dentro de un Div encendido. Yo quiero este dedo vivo tener una llamada de clase. Así nd hace tal vez cuatro para que no se estire a través de todo el lienzo. Simplemente ocupa cuatro espacios o cuatro columnas de un potencial 12 y luego dentro de fuera que quiero esta mesa justo encendida. Entonces esta mesa va a tener nuestro papel El R t r de alguien Y luego en esta T voy a tener dos TDs. Recuerda, los tés son columnas, por lo que este va a ser de primer nombre en. Después voy a inserciones en los muelles de Sion Model, luego poner el nombre de pila. Muy bien, Onda, siempre desanima por lo general colocar, um, ya sabes, texto directamente dentro del remolcador de TV. Entonces, ya sabes, probablemente quieras ponerlo como en un remolcador P o algo así, pero para no, eso está bien. Simplemente queremos que se muestren los datos. Entonces somos nombre de pila que tenemos apellidos. Algunos realmente solo quieren copiar y pegar estos y cambiar los detalles en consecuencia. Y entonces tenemos apellido. También tenemos más adelante vamos a tener. Probablemente volveremos a duplicar. Y después de dirección de correo electrónico y otros detalles donde sé que tenemos muy pocos detalles de biografía para que podamos ver una biografía de barco en. Entonces esto sería esa bio. Está bien. Y luego vemos que tenemos libros, por lo que probablemente quisiéramos mostrar una lista fuera de los libros en las noticias. Entonces después de ver los detalles de los autores, Muy bien. Por lo que probablemente me pueda poner un poco de golpear aquí para ver fuera de los detalles detalles del autor en. Entonces voy a poner otra sección debajo de esta mesa donde sólo voy a ver una celda, Sólo romperla un poco para que no se vea gigante del dedo del pie. Y entonces digo nuestros libros libros libros de autor justo en. Entonces, para los libros podemos para cada uno o qué? Necesito otra mesa, Alguien para poner los libros en otra mesa entonces ¿O sabes qué? Voy a ponerme un poco más creativo que solo usar otra mesa. Entonces en cambio, fuera de una mesa, lo que voy a hacer es usar ah, tarjeta en el grupo de lista. Entonces, mirando alguna documentación de bootstrap, veo que tienen una tarjeta especial donde puedes tener, como, un pequeño encabezado encendido. Después tienes el grupo de lista, y luego saldrá luciendo así. Entonces eso es lo que quiero. Entonces solo voy a copiar este cordón aan den después de que veamos los libros de autor, sólo voy a pegarlo bien. Sé que sólo lo refractamos juntos. Entonces en lugar de tener este mismo destacado, voy a decir libros de autor. Entonces tomaré esta edad para Tug. Cortarlo, colocarlo dentro del hijo seis para el rumbo al bateador de cartas, ¿ verdad? Simplemente arregle un poco mi sangría, luego para el grupo de lista. Yo sólo voy a decir a la señal para cada uno en que va a ser vier on. Eso es un libro en. Entonces la colección aquí será modelo acoplado. Entonces tenemos libros. Está bien, entonces, ya sabes, para que esto funcione, definitivamente vamos a tener que pescar nuestro modelo de libros. Entonces, um, sólo aguanta conmigo. Por lo que para cada libro dentro de la lista, fuera de los libros que estarán regresando. ¿ Verdad? Entonces ves que tenemos menos libros libres, y si no estás tan seguro a qué me refiero Recuerda cuando configuramos el modelo, sacamos todas las propiedades así como incluimos una lista de libros. Entonces en el Jason, Easy se da cuenta de que d serializarás dedo del pie ah, libro derecho. Cada libro tomará las características del libro, y todo eso son los analistas telefónicos de llamadas a los libros. Entonces hay que asegurarnos de que tengamos representación para las propiedades fuera de cada libro dentro del modelo de libro. Entonces vamos a hacer eso suficiente nosotros o terminar este diseño. Entonces para cada libro que se va a recuperar, lo que queremos hacer es poner en L. I. Con el I. ítem de grupo de lista de clases encendido. Entonces el contenido estará a la señal Book on puede estar en San Book dot y, bueno, es un objeto vacío, así que no hay nada que enlazar todavía. Entonces déjame solo liderar toda la grasa, arreglar un poco el formateo, luego volvemos nuestra atención a los libros. Sólo estoy haciendo todo una vez refresco después de doble volver a encenderse. Enfréntate otra vez, ¿verdad? Entonces lo que vamos a saber es ir a nuestro modelo de libro. Así que tiene el modelo de libro, y está en blanco que no puede funcionar bien. Arreglo rápido. Simplemente retrocedemos el dedo del pie a P en recuerdo que lo que realmente estamos haciendo es simplemente mapear o dejarme ver el detalle o realmente estamos haciendo es simplemente fregar las propiedades que estarían regresando del FBI. ¿ Verdad? Por lo que cualquier convocatoria del FBI para un libro estará recuperando todos estos puntos de datos. Justo en. Yo sólo voy a tomar todo esto, así que sólo voy a copiar todo esto, ven a reservar dentro del contexto fuera de nuestra aplicación U Y. . ¿ Verdad? Estamos consiguiendo el tipo. La idea, el año, el Ya sabes, todos esos detalles pueden ser el precio, ¿no? Um, autor yo d en entonces no tenemos todos los detalles, pero sí tenemos autor. Entonces para cualquier libro que vaya a reclutar, queremos recuperar los detalles del autor, si es posible. Ya sabes, cuando estamos cuando están implementando nuestra librería, Fred, pero por no, esto es lo que mirará cada libro. Entonces estamos trabajando en el libro, ey, voy a poner en la validación y así sucesivamente. Por lo que dejo eso para no, pero de vuelta a nuestra lista aquí. Cuando lo sé, di libro, que es recordar ese objeto. Entonces es un libro muelles on No, puedo obtener algunos detalles Así que un detalle que probablemente querría es el título Onda Tal vez el título en el Let's See the Price Así en san book el título en Abajo el Precio Y entonces, si quieres probablemente puedas agregar un sobre tío apretado aquí para ver a Bino. Nuestra vista más adelante estaríamos configurados que te quieren Mira a un autor en los libros que tienen , ya sabes escrito lo que estaría apareciendo en esta sección Ves el título, ves el precio y luego puedes dar click para ver más adelante lo arreglaremos. Entonces sé que solo queremos conseguir la vista para el autor Abrir corriendo, correcto Así que tenemos todas esas cosas se estaban poniendo eso de nuevo. Estamos llenando todos los libros. Una cosa más que creo que probablemente querría es un botón que,ya sabes, ya sabes, volver atrás Esperanza derecha son algún ataque de trozo. Entonces quiero decir, tienes dos opciones. Como dije, eso si usamos el botón un botón tipo de en un viaje. Por lo que tenemos que armar un evento arroyo en que nos navegaría uno. Entonces voy a usar un botón solo para que veas cómo funcionaría eso. Entonces voy a ver un botón, um, um, volver atrás pero dedo del pie, pero enumerar derecho para listar en, entonces eso tendría lo que usted llama un evento complicado. Por lo que hay que ver ese letrero en limpio justo en. Entonces ese signo al hacer click, especificas a qué función se debe llamar al click. Por lo que yo diría respaldado una lista. Está bien, ese es el nombre fuera de la función. Entonces voy a aparecer la línea roja porque no existe tal función. Entonces, ¿por qué aparece esa Línea Roja? Yo sólo voy a seguir adelante y crear la función, alguien que diga, Privado, sólo lo haré nulo en Llamarlo de nuevo a menos. Entonces me encargaré de que se utilice el gestor de navegación Andi navega a. Y entonces el enlace que voy a poner aquí no sería recortado. Pero te van a cortar. Autores slash Así que esa es la página de índice para nuestros autores. Derechos sexuales. Tan poco. Pega esto para dar una vuelta y ver cómo funciona Muy bien. Entonces estoy aquí mirando la lista fuera de autores. Adelante y doy clic en ver, entonces. Está bien, Así que me estoy subiendo a ella aquí de botes, los libros de punto modelo quedando en blanco. Muy bien, Entonces esta es una de esas áreas que te dije. Es por eso que nos dejan poner en estas declaraciones para decir, si está en blanco, entonces sabes que no le causará, así que está bien. Podemos arreglar eso con una declaración if. Entonces salgamos más de la gente. Y entonces voy a ver en la ciencia, si en esta estimación sólo se va a evaluar si el modelo que libros Muy bien, Entonces eso significa que el autor, a quien traté de ver, no tiene libros. Entonces si modelado libros derecho es equivalente a saber que no hay libros devueltos. Entonces lo que voy a hacer es mostrar esta sección. Diga, digamos, estoy usando la corte en contra. Si alguna vez hubiera querido cambiar el estilo, entonces habría tenido que cambiar que al menos cuatro lugares por No. Correcto. Entonces no hay libros para exhibir libros. Bueno, para este autor para ello En allá, vemos más. Queremos todo este acorde de fantasía que acabamos de escribir. Entonces no necesito mostrar libros de autor y ningún grupo de lista para decir, Oh, son libros. Yo sólo voy a decir que no hay libros para este autor o hombro, así que intentemos eso de nuevo. Muy bien, entonces estamos de vuelta a donde empezamos en Let's Test de nuevo. Entonces no estoy seguro de qué autor tiene algún libro, pero simplemente arrastramos con el mismo autor con un A K R. Así que no estamos viendo Este autor no tiene libros. Sí vimos un flash encendido en flash apagado y fuera de curso. Necesitamos estilo o tableros de botones. Creo que la razón por la que al menos no nos estamos estrellando. Entonces eso es bueno. Entonces creo que la razón por la que dulce lo vimos parpadear es que mientras modelo era no, libros era no. Pero entonces creo que una vez que se carga modelo, la colección fuera de libros ya no es conocimiento es cuenta de ceros. Tiene algo más que el condado cero. Entonces lo que voy a hacer es que voy a ver si no es nada o vagando hacia arriba. Libros que no lo harán es menos de un significado correcto? No tienes ningún libro que tengas. Cero son menos libros, entonces cuando Las clases de negativo. Correcto. Entonces tienes menos de un libro, entonces queremos mostrar esto. Creo que eso debería ocuparse de eso en. Entonces. Yo sólo voy a poner un tirón de freno aquí abajo. Entonces asegúrate de darle estilo a mi botón en dso. Eso sería clase sobre Bt nbt n dash on. Digamos línea y lo voy a ver en línea secundaria. Muy bien, vamos, entonces. Dentro de la. Pero también voy a poner uno de esos iconos, ¿ verdad? Algo Ya sabes, no me estoy enfocando demasiado bajo en el look and feel, pero es agradable simplemente hacer todo en conseguir un aprecio completo por todo se junta. Entonces voy a poner en un lapso y voy a llamar a mi clase de icono abierto, y entonces será Oh, sí. Tienen un Buck Barrow. Muy bien, así que los medios saltan la palabra buck. Uh, probemos Skip Buck palabra. Está bien, así que intentemos eso una vez más, y sabemos que este autor no tiene libros. No estoy seguro si tenemos autores con libros, así que si quieres atemperar a la fuerza, el FBI causa y crea algunos libros con algunos autores adscritos a ellos. Pero al menos queremos asegurarnos de que nuestro punto de vista emitiendo un adecuadamente. Está bien, así que atrás en vista el mismo autor. Y vemos detalles del autor todos los detalles en los libros de DNO para este autor, y obtenemos nuestro bonito dedo del pie batalla es botón luciendo bonito y elegante ahí debajo. Entonces quiero decir, no es la interfaz más bonita, pero al menos podemos ver qué se está juntando. Peor, podemos, ya sabes, refinarlo un poco. Se puede despegar esta vista en puede ser. Tener detalles de autor más pronunciados. Podemos cumplir con estos el texto en este tablero lateral en su lugar, fuera luciendo así en luego fuera de curso, con más datos para la biografía, habría más detalle para exhibición y luego fuera de curso. En última instancia, no tenemos libros para este autor, que cobrará vida cuando empecemos a poner libros. Entonces eso es todo por desprender la vista. Posteriormente, haremos algunas correcciones esenciales y limpiaremos un poco más los interfieres, pero para no, eso es toda la semana 100. El piso entre los diferentes componentes. Por lo que pasamos datos entre componentes y cómo manejamos los datos de carga una vez más, dentro de cada componente. 46. Autor de la actualización de la configuración: Oigan, chicos , en este video, vamos a estar viendo hacer en él. Entonces acabamos de ver. Ya sabemos tenerlos en índice. Por lo que la edición va a seguir mucho fuera de los mismos pasos que el conjunto de pasillo de la vista. Empezando con nuestros enlaces. Yo sólo voy a copiar esto, un viaje que ya tenemos para la vista. Barton. Ahora lo voy a poner en el botón de edición y en su lugar fuera autor. Me fui a ver Pity está bien. Entonces seguimos adelante y creamos nuestros nuevos componentes. Entonces en autores, agregamos un nuevo componente y vamos a llamar a éste una vez más con una E mayúscula encendida. Después atuenmos nuestro nuevo componente con la página que escribió. Se supone que tiene la inyección de reporte y nuestra inyección de gestor de navegación. Muy bien, un mínimo. Necesitamos esas cosas. Si necesitamos algo más fuera de curso, los agregaremos en el camino, pero solo señala que este paso, esta vez falta edición en él, sigue esperando saber qué edición de registro, ¿ verdad? Por lo que aún tenemos que recuperar el registro en entonces tenemos dedo del pie los unen del pie la forma. Entonces, en realidad, mucho del código que escribimos dentro del componente de vista es muy aplicable, ¿ verdad? Entonces en realidad sólo voy a copiar, En realidad, todo esto realmente voy a copiar todo eso, porque todavía necesitamos tener el parámetro que necesitamos para tener nuestro modelo presente. Entonces cuando se inicializaron las páginas, tenemos que ir a buscar, ¿ verdad? Entonces tenemos que buscar el disco que se va a editar y ponerlo en modelo, y todavía voy a tener el botón back to least on. También voy a tener otro botón. Esa es su cancelación. Está bien, así que sólo voy a ir a ver lo que ya escribí sobre lo que me voy a llevar. Entonces sé que necesito este botón. Está bien, así que sólo voy a copiar eso. Está bien. Yo quiero llevar voy a cambiar este autor de edición. Muy bien, Andi, igual que por aquí debíamos haber tenido vista autor. Así que sólo te ahorras. Detalles de autor fuera que se descarta su vista, detalles de oferta. Está bien. Trae algo de consistencia. Diseño desgarrador. Muy bien, Cualquier hoyo. Otra cosa que querría es la declaración if. Entonces mientras estoy aquí y estoy en esa línea, acabo de hacer la declaración, algunos simplemente copiando y pegando una vez más. Por lo que simplemente avanzamos rápidamente entonces tenemos el si más en esta declaración if. Entonces si no es Todo bien, entonces ahora me voy dedo del pie quiero esto en vivo otra vez? Está bien. Entonces voy a crear un componente compartido porque estoy enfermo y cansado de tomar este frío cada vez y gravarlo a través. ¿ Verdad? Entonces lo que voy a hacer es pasar a compartir y luego, bueno, veamos uno que ya existe. Si miramos el componente del prompt de la encuesta para ver aquí que en realidad es solo una alerta en git tiene algún texto bine doble llamado Title y realmente está recibiendo un parámetro llamado title. Y si miras en la página de índice cómo funciona, es solo llamar al prompt de encuesta, que es el nombre fuera del componente encendido, luego pasar el mensaje o lo que sea que el texto debería estar dentro de lo lamentable dentro de la encuesta problemas. Está bien, entonces vamos a estar haciendo lo mismo. Por lo que sólo voy a ir a compartir click agregar en un nuevo componente. Voy a llamarlo cargando mensaje, ¿verdad? No hay nada demasiado elegante en entonces dentro de ese componente o alguien que hacer es voy a tomar el Dave en sus tomas por defecto que siempre estaban mostrando. Entonces solo voy a ir de pie así. Patela por dentro del componente. ¿ Todo bien? Entonces, no, eso tenemos. Dave en su está cargando detalles del autor. Entonces este, voy a hacer dinámico porque voy a usar este mismo componente con su autor o un libro o detalles de usuario. Sea lo que sea, este es el que voy a ti. Entonces en cambio, fuera haciendo esto estático. Está bien. Y una vez más, sólo estamos sacando el ejemplo del prompt de la encuesta dentro fuera de la cancha, voy a dar un Parmenter como lo que hemos estado haciendo, Así que sólo voy a seguir adelante, darle un parámetro en este uno va a ser mensaje. Y entonces lo que vamos a hacer es sólo comprar el mensaje aquí, así que probablemente pueda poner esto en una etiqueta H tres en lugar de solo tenerlo impreso así y luego ver mensaje. Muy bien, Entonces cada vez que vamos a llamar a este componente, vamos a decirle el mensaje, y luego se imprimirá en consecuencia. Entonces revelando lo que no necesito cuando estoy yendo dedo del pie cuando voy a editar en autor, no puedo ver llamar al componente cargando mensaje en. Entonces me da la opción de especificar el mensaje, y luego puedo decir cargando autor para ediciones o cualquier mensaje que sea que quieras. Yo sólo estoy, ya sabes, haciéndolo, por ejemplo, enfermo. Sé que tengo este componente no tengo toe copy y pego ese particulate vivo cada vez así puedo poner la misma llamada de componente dentro de la vista en eso, puedo decir cargando detalles del autor, está bien. Y entonces puedo hacer lo mismo por dentro fuera del índice donde originalmente lo creamos, verdad. Y entonces puedo decir que cargando autor están cargando autores. Muy bien, así que esa es una buena manera de crear. Ya sabes, componentes reutilizables y parlamento hotelero los surgen. Entonces cuando paso ese mensaje en, se pone que simplemente renderizará eso en lugar de apagado en H tres. Tuck. Está bien, así que sé que esa perra está fuera del camino. Lo siguiente que quiero es forma de arte. Entonces si somos algo, eso significa que necesitamos un formulario de edición. Entonces habrías visto el formulario de edición desde cuando lo hicimos sobre las cosas de inicio de sesión de usuario y registro de usuarios, ¿ verdad? Y el formulario de edición, especificamos un modelo a utilizar, que sabemos que tenemos modelo para eso, ¿no? Como sea que llames a ese objeto, eso es lo que pones ahí. Entonces diría algo así como en válida presentar. Entonces esto es lo que quiero hacer. Por lo que quiero editar autor. Está bien, entonces fuera de curso, necesitamos que se defina esta función. Entonces no, necesito dedo del pie definir esta función, que es su autor. Entonces solo voy a crear esa función en. Voy a hacer que sea un privado evite Onda. Dividirlo ahí. No voy a estar haciendo nada todavía, pero en realidad necesito el formulario. Muy bien, entonces sabemos cómo se verán las formas. Tenemos el dar estas formas bootstrap y luego animan a dedo tener una clase llamada para grupo mdash, está bien. Y luego adentro, fuera de este formulario tenemos una etiqueta puesta. Entonces es una buena idea a cuatro vendibles. Y luego ponemos la idea de lo que eras antes, así que sólo voy a decir nombre, acuerdo? Y entonces el texto de las etiquetas en sí es nombre de pila. Está bien. Y luego tenemos unos componentes. Un componente incorporado en la forma fuera de texto de entrada. Bien. Y entonces el texto de entrada va a ser hueso para que podamos decir que Scient vincula valor. Está bien, había firmado valor de compra. Perdón. La inteligencia está desapareciendo. Para que la arena comprando valores, la igualdad. Y luego decimos a signo modelo punto sobre entonces la propiedad que se une a la cual sería no necesito afuera. Perdón. Sería modelo dot Nombre. Está bien. Aan den Doy la clase igual forma. Control de tablero. Está bien, en ese entonces le puedo dar el i d para que se vincule. Pero a la etiqueta, que es nombre de pila. Está bien. Fuera de curso con la reforma. Disculpa me perdí ese paso. Debería tener el validador de anotaciones de datos porque tienes eternidades en nuestro, um autor modelo on, entonces también deberíamos tener validación. Resumen. Está bien, así que no me voy a poner el mensaje de validación debajo de que ya tienen el resumen. Por lo que solo dejo ahí el resumen. Andi, sólo voy a seguir adelante. Entonces yo por nombre, voy a simplemente copiar y pegar eso y hacer lo mismo por apellido porque básicamente son lo mismo en términos de sus requerimientos. Es sólo asegurarnos de un cambio de las ideas y de la unión. Lo siguiente que tendría es el bios, um, um, cuando el dedo del pie tiene eso también. Pero esta vez voy a usar un área de texto de entrada como mis componentes. Justo en comprar esto de vuelta a bio. Está bien. Asegúrate de que todo se parezca a cómo se supone que tiene que ver. Entonces al final esta forma, ya que sólo tengo tres propiedades que tendían a la derecha? No Nombre, apellido, la bio. Entonces vea, señor Step aquí. Simplemente revisa dos veces y asegúrate de que no te falte ningún cambio. El último que necesitamos es el botón, el botón enviar. Entonces solo voy a ponerme botón, entonces esto sería que es Oh, ther. Muy bien, vamos, entonces. Yo voy a mí. Esto son botón por bootstraps Bt y Bt y dash on. Voy a hacerlo primario, acuerdo? Y luego tengo mis botones pero liberados. Entonces sólo voy a poner ese botón de nuevo a lista aquí al lado de él. Entonces o edita o vuelves a la lista tampoco. Presentar Editori, volver a la lista. Algunos poniendo eso ahí. Muy bien, Andi, si queremos podemos propósito pruebas del botón Eddie con un icono o dos nuestros tableros. Otra cosa que queremos en este botón es el tipo. Por lo que type equals submit realmente quería desencadenar el envío fuera del formulario que , si se valora, pasará a esta función. Si no es válido en las validaciones estará deteniendo que se presente. Está bien, está bien. Entonces acabo de modificar un poco el botón de enviar lo puse en el lapso Onda puso en un ícono de lápiz, ¿ verdad? Y dice editar. O tal vez dije debería decir algo cambia ¿verdad? Eso es un poco tan repentinamente cambia porque acabas de hacer algunos cambios. Algo muy esencial que necesitamos en esta forma es el I d. Derecho. Entonces, quiero decir, probablemente podríamos camiones el i d del parámetro porque ya lo tenemos aquí. Eso real eventualmente. Por lo general lo que haces es esconder el i d en algún lugar del formulario. Pero entonces realmente lo estamos rastreando a través de estos parámetros. De verdad no necesito que el dedo del pie lo vuelva a ocultar en el formulario. No, en una presentación válida se sabe, cuando se llama a editar autor, ¿qué queremos hacer? Él es Ah, Ver es éxito. Entonces queremos un lingote Lo siento. Su éxito es igual a esperar y luego llamamos un reporte Y entonces lo que esas son las personas tienen para opiáceos Así que llamamos ser y luego quiere que pasemos en los puntos finales para la u R l Así que sólo voy a ver en puntos en puntos punto y luego autores en puntos. ¿ Todo bien? Y entonces y después podemos dispersarnos en modelo. Entonces estaba diciendo que podíamos rastrear el i d a través del parámetro i d, pero ¿qué sucede realmente? Es eso encendido, uh oh. Bueno, no tengo zona aquí porque esto tiene que ser. No es evitar. Debe ser un paradas síncronas. Pero antes de llegar a eso para poder despachar en el modelo Así tarea. Y luego cuando acabo de pasar en el modelo lo que se deshuesó me cambia. Pero entonces lo que no fue deshuesado y propenso a cambios aún se persiste dentro del modelo . Entonces cuando recuperamos el modelo lo trataría alguna vez con el I D. De todos modos, encendido cuando lo pasemos de vuelta, ya sabría lo que es el I. D. D.y lo tendría para uso futuro, ¿no? No, tenemos que comprobar si fue exitoso. Entonces sólo voy a ver si es éxito. Entonces quiero navegar lejos para que sólo pueda ver navigato. O tal vez pueda simplemente volver a llamar a esto. A ver si eso funciona. Pero la lista allá vamos, ya que eso fuera reescribiendo esta línea, que va a traer de pie la lista de todos modos, solo puedo ver si su éxito, entonces llama a este stand lo que se supone que haga, le va a hacer todo bien de lo contrario. Si no tuvo éxito, entonces probablemente queramos mostrar algunos errores. Entonces creo que lo hicimos en la página de inicio de sesión donde dijimos si había flechas para mostrarlas y mostrarlas. Entonces lo que voy a hacer es definir y madre variable aquí. Onda que estamos llamando está fallado. Por lo que notarías que a veces tienen privado. A veces no lo hago. Una vez más, la consistencia es clave, pero por defecto, si no especificas privado o público, va a ser derecho privado por defecto. Entonces su campo se hará realidad si eso no tuvo éxito. Por lo que ha fallado. Igual verdadero. Está bien entonces, lo que puedo hacer arriba aquí es Ver que si ese cartel Lo siento, Así que déjame retroceder un poco. Dije Ha fallado en ser caídas por defecto, lo que sólo se hará realidad si el éxito se siente bien. Entonces sólo puedo ver. Y en realidad solo voy con la tienda de matrimonios porque allí hice algo muy parecido . Donde y luego aquí está otra vez. Estoy repitiendo una alerta de peligro para que pudiera convertir eso en un componente reutilizable a dosis mensaje Lodeiro. Correcto, Así que tenemos bajo mensaje para esperar y solo puedo convertirlo en un componente. Por alguna razón, esto a veces se va a leer. No estoy del todo seguro, pero para cuando estoy construyendo, debería arreglarse solo. Está bien, entonces, hasta ahora, lo tenemos todo. Sigamos adelante y probemos que tengo un botón extra aquí. Déjenme simplemente quitar eso porque muevo el botón al lado de los cambios de sujeto. Entonces tengo cambios repentinamente en. Entonces tengo el otro para volver a esto. ¿ Verdad? Entonces vamos a probarlo. Muy bien, Así que estamos de vuelta a nuestra lista en ese entonces. Voy a intentar editar en un caso cuando haga clic. Editar. Ahí está ella. Está bien. Por lo que sus detalles aparecieron muy bien y rápidamente en entonces ella está en impresionante autor. Enseguida, después vamos a enviar cambios para que podamos volver a la lista. Y esta justicia que primero. Está bien, genial. Eso funciona. Déjame sólo volver a escribir en. Entonces voy a presentar cambios. Y luego veamos. Está bien, entonces no, algo salió mal. Entonces ya ves, acabo de copiar y pegar esa era Dave sin cambios en la tecnología para que podamos hacer todo ese componente utilizable. Pero algo salió mal. Y veamos si podemos estar sobre lo que salió mal. Entonces volviendo a mi corte de repositorio basado y el método de actualizaciones en solo estoy comprobando dos veces para asegurarme de que todo esté completo. Dijimos que debería ser así tenemos el puesto tenemos el URL encendido. Creo que no nos formamos o no sé si cambio esto después, pero sospecho que la U. R L está malformada porque también debería tener la idea tocada. Si no me equivoco, déjame volver a mi documentación para mi a p. Onda. Eso es efectivamente. Debería ser slash autores slash i d y me quité el i d por la razón que sea. Entonces sólo voy a salir más del barco antes de ir más lejos. Está bien, así que voy a volver a poner 1/3 Parmenter para el I. D. También me voy a juntar dedo del pie. Ocho en la cuerda. Entonces tenemos la URL como una cadena encendida y déjame solo asegurarme de que mis endpoints tengan esa búsqueda de barra inclinada final debería ser una barra de autor p i slash y luego estamos concatenación el valor i d i d ahí mismo. Pero luego fuera de curso. Si cambio el repositorio base, tengo que cambiar mis contratos. Entonces no estoy seguro. Creo que tal vez lo cambié cuando ustedes no buscaban por la razón que sea, Pero déjenme volver. Entonces si eres tu contrato debería verse así para la actualización con el I. D. En tu repositorio basado debería tener los tres parámetros en Beacon coordinando la idee en la cadena. Muy bien, así que intentemos eso otra vez. Obtuve un error porque necesito actualizar mi llamada de método. ¿ Verdad? Entonces estoy pasando en la importancia, el modelo, y luego yo solo un modelo puntos, yo d Muy bien, Así que intentemos esto otra vez. Está bien, así que estamos a punto de la página de edición ya hice mis ajustes donde dije que está en impresionante autor. Presento cambios y algo salió mal otra vez. Entonces creo que sé lo que es esta vez. No es que malformemos al conde. Creo que es sólo porque no estamos actuando. Por lo que voy a establecer un punto de ruptura en mi historia de informes base justo en la llamada de actualización después de que tengamos la respuesta. Y luego volvamos a mirar. Por lo que fui a presentar cambios , envía sobre la solicitud el. Entonces dice, prohibido. Muy bien, entonces eso significa que nuestra validación en nuestras cosas de autorización funciona, al menos en el nivel A P I. Tenemos que hacer que ningún non admin pueda llegar a la página para empezar. ¿ Verdad? Entonces aquí mismo en este escenario, tenemos puerta en esa librería dot com que es solo un cliente en. Es capaz de ir a los autores esto en, en realidad dar click en él autor. Por lo que queremos que no pueda ver ese enlace uno, y que aunque navega por ahí, no se autorice siquiera llegar a la página. Está bien, Pero entonces, en la A P, dije, podemos sentirnos seguros de que al menos está validando que la persona que intenta hacer la operación tenga la autoridad para hacerlo. Así que déjame amar Boat como el usuario en el amor de nuevo en como administrador. Está bien, así que en ninguna parte de vuelta en este discurso en adelante, estamos usando a nuestro administrador para volver a intentarlo y veamos qué pasa. Entonces cuando entrego cambios y golpea o punto de ruptura. No puedo ver que estamos recuperando ningún contenido. Entonces, no, sabemos que fue exitoso. O al menos la deducción es que fue exitosa por lo que podemos quitar el punto de ruptura f cinco . Que continúe. Se remonta al inicio. Y luego si veo los detalles el día, todavía tengo un punto de descanso. Simplemente libere eso. Cuando veo los detalles, vemos que fue editado con éxito. Ahí vamos. Entonces obtenemos la edición. Lo conseguimos trabajando en DWI. Ve dónde los ojos AP rechazando activamente, um, ya sabes en el Támesis llamarlo si la persona no es una autenticada o a autorizada para llevar a cabo ciertas cosas. Entonces eso es lo que la Escuela de Respuesta Prohibida, que es para los tres y cree que un 41 está en oferta a cuatro tres. Prohibida. Andi. Eso es lo que obtuvimos cuando nos dimos cuenta de que estábamos usando un usuario inferior. Por lo que los usuarios de la librería son regla del cliente pueden ver para que puedan venir al arrendamiento y puedo dar click en los detalles y ver los libros y todo. Pero lo que no pueden hacer en realidad es editar y eliminar. Muy bien, entonces necesitamos modificar los Interferes y lo haremos más adelante. Pero estaremos modificando el interferir de tal manera que cuando un cliente inicie sesión, no vean en absoluto el editor y el botón de borrar. Y aunque traten de navegar directamente, ya sabes que alguien que es inteligente en mi duro descubrió el patrón que podría intentarlo. Autores slash view r slash idiota slash the i D. Todavía no queremos que puedan llevar a cabo nada en esa página, así que esa es una de las cosas que estaremos haciendo más adelante. Pero por ahora, vemos eso sobre él. Está funcionando bien, Andi. Una vez más, si no funciona, solo asegúrate de no tener errores ortográficos en el camino. Por lo que he tenido algunos errores ortográficos y resolver estos errores fueron realmente porque no deletreaba las cosas correctamente en el proyecto en su ya sabes, así que eso te puede descarrilar y hacerte pensar que tienes una gran era cuando realmente es solo una niña menor. Entonces solo asegúrate de que el gasto sea consistente. Asegúrate de que estás nombrando convenciones sean consistentes cuando volvamos. Nos fijaremos en finalizar la sección por un ID minante medio usuarios dedo del pie 47. Setup Delete: Muy bien, entonces estamos de vuelta, Entiendes? Queremos abordar la eliminación. Entonces te tenemos a ti. Tenemos actualización y necesitamos hablar del liderato que ya establecimos que solo admite puede hacer la edición y borrar el. Estaremos manteniendo una sesión con nuestro almirante encendido. Yo sólo voy a Lagos a que empiece la fiesta. Por lo que volviendo a nuestra página de índice, vamos a simplemente copiar este enlace porque la eliminación va a quedar igual que los otros dos encendidos en lugar de apagados cada vez que va a decir eliminaciones. Ahora, después de hacer eso, voy a crear un componente porque lo que quiero es que cuando elimines de la tabla , se va de pie. ¿ Te llevaste la delantera de la La lista va a traer remolque. Ah, Page. Eso te va a mostrar los detalles fuera. De qué estás a punto de hacerlo y pregunta si tu tren corto en particular Así tengo un nuevo componente . Se llama las pistas encendidas. Entonces, más o menos voy a estar copiando y pegando mucho fuera de la cancha de las ediciones. Porque mucha de la cancha, como donde lo establecido se ve bastante parecido. Por lo que la página en esta ocasión se borra. Está bien. Ya tengo mi repo en mi gestor de navegación, Andre. ¿ Qué? Puedo cambiar el rumbo más adelante. Entonces, ¿qué más necesito de la página de edición? Básicamente me voy a llevar todo aquí. El parámetro, el modelo, la ISS falló prácticamente toda la sección escribe, La única diferencia será lo que realmente ponga en el evento de truco. ¿ Verdad? Entonces en lugar de apagado. Y también vamos a tener borrar autor y déjame sólo Bueno, todo lo demás puede quedarse. Simplemente parece informar endpoint de las actualizaciones para realmente en eliminar el extremo de eliminar está tomando la cadena. Estás en el I. D s. no necesito los objetos modelo ahí. Está bien, así que eso es todo para el diseño fuera del trato. Bueno, el cable Bueno, eso es un inicio para la sección de cable del archivo de borrar, la vista. Pero entonces voy a pedir prestado corte de la vista sección toe display, ¿Qué está a punto de ser borrado, verdad? Entonces, en realidad, sólo puedo tomar todo en este discurso desde la carga. Si las declaraciones del pie imprimiendo los detalles en, entonces sólo estoy llevando todo eso ni siquiera lo hacen a la batalla al este. Está bien. Yo quiero llevarme todo en este terreno de juego. Está bien, Pero entonces voy a incluir una reserva adicional en esta pieza. Entonces Así que déjame pasar exactamente lo que está pasando aquí en caso de perdido. Por lo que nuestro delete es más o menos yendo dedo del pie navegar con el mismo parámetro i d que usamos en la vista en la edición cuando llega aquí y está cargado. Cuando se suponía que los señores de la página recuperaran ese registro de nuestro A p I y habrá uso de esos datos para mostrar. Entonces estoy diciendo que la exhibición aquí va a igual que tendría bajo edición en la vista, Pidge. Pero luego en la parte superior, voy a ver nuestro Seguro que quieres. Perdón. Quieres dedo del pie borrar este registro. Entonces esto es como una página de confirmación, ¿verdad? Digamos, podría liderar va a venir aquí preguntando. ¿ Estás seguro de que deseas eliminar este registro? Porque le estás dando a la persona la oportunidad de revisar y ver Oh, es el registro equivocado. Lo siento. Déjame volver a la lista. Está bien. Pero entonces si son menores de meses que hay lugar directo y están a punto de eliminar. Entonces solo voy a duplicar ese batallar este botón y luego voy a decir, Eliminar autor justo en. Entonces voy a poner el icono hilado para ser o yo Andi. Creo que tiene como, bueno, sólo reutilizar borrar. Por lo que corrió la delantera. O es solo eliminar juguete ya evitar ceniza. Esto es un atraer a nivel nacional así y entonces la clase aquí será BT y Dash Peligro. Entonces este es un botón rojo diciendo que Hey, estás a punto de eliminar para que puedas proceder a eliminar autor o puedes volver atrás Así que el on click aquí no volverá a la lista para el on click será. Elimina el autor. Está bien, así que al click, llamamos al autor principal, que luego causan sobre borra meth impar pasar en el modelo con los modelos I d. Al llamar a los autores y apuntar, y si es exitoso, volvemos a la lista en. Si no tiene éxito, entonces decimos que es sentir es cierto en entonces eso es apoyos. Dedo del pie. Danos una pequeña sección de época, así que enfoquémonos en esa sección aérea. Por lo que de vuelta en la edición, tenemos esa sección de época. Entonces voy a convertir esto en un componente. El mismo. Devolvemos el mensaje de carga intercomunicador jalar de la derecha. Entonces me voy solo a corte de dedo que van a compartir impar on. Entonces voy a agregar un nuevo componente al que estoy llamando mensaje de error. Adelante. Y ante eso y luego dentro de esto solo voy a poner las mismas alertas, luego convertirlo en un peligro encendido. Entonces soy vinculante. Esto también. Alguna variable llamada mensaje, que es nuestra representación fuera de un parámetro. Eso vamos a estar llamando mensaje, ¿verdad? Por lo que no podemos mensajes de error posibles o personalizados en. Se mostrarán en los cambios de moco de un Pete fuera a tal vez una H tres veces. Entonces es más pronunciado encendido, luego dentro de fuera en cualquier lugar que lo hubiéramos cargado manualmente para que pueda volver a mi editor razón en su campo voluntad. Ahora voy a ver mensaje de error. Esos son mis componentes encendidos. El mensaje será igual a un sermón por barra. El del autor, la página de registro Sargento. Ves, algo salió mal con la operación un poco más genérico. Muy bien, entonces. Puedo reutilizar. Esto falló en mi sección de eliminación. ¿ Verdad? Por lo que acabo de copiar y pegar entre dos componentes. Andi hizo todo un componente nuevo con cancha muy mínima porque una vez más, sabemos en qué nos estamos metiendo. Entonces es fácil navegar por ahí, ¿verdad? Entonces, no, podemos probar este en, asegurarnos de que nuestra eliminación funcione. Entonces yo sólo voy de pie, adelante y voy a dedicar más. Está bien, entonces donde liberaron autores ya estaban a mí, y voy a dar click. Elimina. Está bien. Entonces no quiero eliminar la anarquía. Esa es la persona equivocada. Por lo que hice clic. Eliminar, y veo que no soy los registros equivocados. Sólo volver a la lista de quién quiero eliminar es realmente sólo una bantam. Porque tengo dos registros. Voy a borrar uno de la derecha Andi. Está bien, Jyoti. Apellido biografía. Nada. No hay libros. Eso está bien. Déjame hacer clic en el autor principal en Boom. Estamos de vuelta en el discurso índice con uno menos sólo un doblado en disco. Entonces o borrar obras así envolvimos nuestras operaciones viales y yo estoy diciendo carretera y no multitud porque, bueno, no tengo forma de crear un nuevo autor. Entonces eso es otra cosa que necesitamos implementar, ¿verdad? Por lo general desde el expedient tener abundancia es crear. También en. Estaremos trabajando en eso en nuestro próximo video. 48. Setup Crear un autor: ustedes chicos, bienvenidos de nuevo en este video, vamos a estar abordando la funcionalidad de creación para autores. Por lo que para iniciar esta operación, lo primero que considero necesario sería un botón que me permita navegar con el dedo del pie a su derecha. Por lo que hemos hecho los botones para todos los demás en la sección l. Entonces si el modelo es igual a saber, entonces no pasa nada. ¿ Verdad? Pero después, cuando algo lo hace, Señor, quería cargar con el botón, alguien para ver a Angkor tog encendido. Entonces riff. Y entonces este viaje va a ser un poco más sencillo que los demás. Donde se barra autores autores barra barra Así autores slash Creta. ¿ Verdad? Entonces no necesito ningún departamento nosotros porque voy a estar creando algo nuevo en. Entonces lo regalamos todo de las cuentas y silbatos que bootstrap nos da un bt nbt y dash. El día, me encontraría con esta primaria. Está bien, en ese entonces, el Texas va a ser crear nuevo autor y luego le voy a dar un pequeño ícono en el ícono de elección es un signo más. ¿ Verdad? Por lo que tenemos un botón en la parte superior ahí. Eso va a decir crear. También lo sabes mientras estoy aquí. Otra cosa que sí me ocurre es que esto se está mostrando mientras que no es si ellos si el autor, bueno, no es mientras se está haciendo la a P que llamo. No, después de que se haga el llamado del FBI, entonces modelo ya no se sabe que es, pero entonces podría tener cuenta off. Cero. Entonces, ¿qué pasa cuando es la primera vez que la aplicación se está cargando bien? ¿ Las bases de datos del FBI vaciando la tabla de autores sobre DSO? Esta página está tratando de cargar la lista, pero entonces no se sabe, pero el cero actual. Entonces vimos algo que eso está en la vista donde revisamos para no o que los seres del maíz sean menos de un derecho. Entonces en esta situación, dijimos, Bueno, si es no, pueden exhibir eso sólo por la corriente más fácil de lo que se muestra esto Eso fue para evitar el árabe. Pero la realidad es que los conos regresaron un cero o menos que uno. Y es por eso que vemos esto consistentemente con el océano. Un árabe. No, El punto fuera de ese monólogo fue cuando ya no se sabe la modelo. Pero el conteo es menor a cero. ¿ De verdad queremos exhibir esta mesa sin nada? Correcto. Entonces solo vamos a mostrar una mesa con los encabezados y luego conoceremos cuerpo. Entonces lo que voy a hacer aquí es poner otra declaración if dentro. Entonces no estoy poniendo el crear nuevo autor en el comunicado porque si no hay autores y quiero , pero invisible ver creándote también. Pero entonces quiero decírselo al mundo. Entonces me voy a llevar eso. Simplemente córtala. Voy a poner otra declaración si aquí. Quiero decir si el modelo puntea bien, y luego recuerda, se espera que modelo sea una colección por lo que modelado off count es menos de uno. ¿ Verdad? Entonces podemos exhibir algo más, y luego voy a poner eso mi mesa a salvo. Es mayor que o si no es menor que uno, entonces bien, correcto. Pero entonces, si es menos de uno, entonces puedo poner tal vez un mensaje de carga. Muy bien, lado, ya que reutilizas mi componente en En lugar, el mensaje va a decir que no hay autores en los data stores, por favor. ¿ O la tienda por favor creó autor para empezar bien? Entonces puedo simplemente poner esto entre comillas O no era Compañía no cantaba. Pruebe las comillas simples para que la persona tenga la idea de que necesita hacer clic. Crea nuevo autor para comenzar. ¿ Verdad? Por lo que esto es sólo un poco de mediación fuera manejo Sostén los interfiere se ve bien. Entonces en este punto, si es el primer Señor, si entras a la base de datos y borras a todos los autores, um, entonces debería aparecer este mensaje porque el autor cuenta con que el maíz modelo sea menor de uno ¿verdad? Entonces ya no es, pero no es menos que uno. Por lo que es bio estándar. Todavía no es, pero estoy seguro de que se puede apreciar eso. No está tratando de manera diferente a cuando puede recuperar un cono y ver que un ConEd es menor de uno. Está bien. No. Empecemos con nuestro nuevo componente para crear. Entonces déjame entrar en autores, click derecho. Agrega nuevo artículo viene nuevo, que va a ser una nueva preocupación, un componente llamado crea en. Entonces realmente voy a estar copiando y pegando cancha. Ah, mucho aquí otra vez para que pueda ir a mi edición en Die probablemente pueda pedir prestado todo fuera de esto. Entonces todo en la página de edición. Um, no necesito las cosas perimetrales, así que solo copia eso para empezar. Déjame a mí. También necesito todo fuera de las declaraciones de uso que descuidé debajo de mí Volver, conseguir mi uso en el camino de la playa y todo. Está bien. Y entonces el pH aquí se crea sin parámetro. Todos los derechos crean más parámetro. Ya tengo a mi manager suficiente tener Mary pull. Um, Y luego fui a ver crear nuevo autor como el bateando arriba. Todos los derechos, tengo mis ojos fallados. Entonces voy a retener ese campo este en ese entonces. Tengo modelo, así que no necesito comprobar si modelo no es ningún derecho. Yo realmente no, porque estoy cargando un formulario en blanco alguien para quitar esta declaración completa. Aquí. Andi, déjame asegurarme de que maté el tirante, así que realmente sólo quiero formarme en el Aargh. Aargh! Estos sección falló. Entonces déjame solo revisar esta ciudad. Entonces realmente, en realidad, todo lo que necesitaba de la edición, no necesitaba las declaraciones. Solo necesito el formulario de edición que se va a comprar en algún modelo en este para seguir teniendo el inválido enviar. Y entonces en su lugar, off edit author implacablemente crea autor. Tenemos las mismas sensaciones porque al final del día, la creación va a necesitar que pongamos en nombre, apellido y biografía mínimo podemos ver crear ofensa que todos presenten cambios. Todo bien en ahí estaban a punto de listar. Eso está bien en entonces. Creo que la cancha bloqueada por accidentes son la cancha de a señas. Y luego empezamos a escribir el código que necesitamos. Entonces lo primero que voy a declarar es algo para la modelo. ¿ Verdad? Entonces tengo mis objetos privados fuera del modelo de autor tipo, y luego todas esas líneas rojas en el modelo desaparecerán. Andi, tengo es campo también. Está bien, entonces eso está inicializado. dedo del pie cae inicialmente. Y entonces tenemos que asegurarnos de que tengamos las dos funciones en forma de crear autor y batallón ist on Die. Apenas se quitó la libertad, poniendo de nuevo en la cancha para navegar de nuevo dedo del pie. Autor. Por lo que tenemos todo lo necesario para este discurso. Toma Andi Así que cientos algunos errores de ortografía tontos. Por todo el lugar. Entonces lo siguiente que necesitamos hacer saber es el mango. ¿ Qué sucede en una presentación válida fuera? Crear autor, ¿verdad? Entonces cuando baje a crear también ¿qué quiero pasar? Necesito chequear. Um, puedo ver var es éxito. Es igual a distancia. Una llamada a mi reporte desde shun dots crean el entonces, lo que estamos creando requiere los endpoints docks. Autores en punto coma andan autor objeto en la forma fuera del modelo porque real, eventualmente lo que sucede es que cuando estás creando la forma, tu enlace, tu enlace, el valor del dedo del pie del campo en el modelo. Entonces una vez que sientas esta vieja haces clic envía porque el modelo automáticamente tendría los datos Una vez que llegue tan lejos, sabemos que está validado por cualquier norma de validación reforzada paseos a través de nuestra validación, y es anotaciones en. Entonces si este éxito está bien, en, me acabo de dar cuenta de que realmente no necesito tener éxito en East Field. Entonces lo que puedo hacer es en que sólo voy a hacer eso. No, porque, ya sabes, a veces estás haciendo algo, y sin embargo simplemente se abre frente a ti por lo que su éxito va a ser cierto inicialmente, ¿ verdad? Onda arriba arriba. Voy a ver si no es un éxito. Entonces en lugar de tener dos variables que realmente están haciendo lo mismo porque ambos son miles de millones en sus dos bisagrados si la llamada es exitosa o no, ¿ verdad? Entonces digo, si no es un éxito, entonces mostrar el mensaje de error, que significa que porque es cierto cuando se carga la página este mensaje de error no mostrará no . Entonces diré que su éxito es básicamente, um, va a ser igual al agua Siempre que vuelva de la llamada de repo. Está bien, entonces puedo ver si es éxito lo que significa que esto sigue siendo Truell. Recuerdo que Estamos revisando si significa a través de nuestro Por el momento que estamos revisando esto, la única forma que no sería verdad. Dios partiendo de nosotros. Verdadero en entonces va a seguir siendo cierto si esto fue exitoso, por lo que entonces podemos volver a llamar a lista. Simplemente nunca le dimos vuelta a la lista, que luego va a simplemente tirar hacia atrás a todos los autores del del del FBI o a través de la a p. derecha. Pero entonces, si eso cambia bien, entonces esto no se despide a Dwell. Esto sería despedido o ese estado o cambio de. Después terminamos con este mensaje de flecha. Muy bien, así que digamos éste para dar una vuelta. Entonces vamos a empezar. Muy bien, Así que estamos de vuelta a nuestra vista y vemos tu botón en Dwell. Arreglaremos en los Little Kings sobre, ya sabes, el espaciado y así sucesivamente más adelante. Pero lo importante es que cuando hacemos clic en nuestro botón, navegamos a nuestra nueva página y luego voy a seguir adelante y poner un nuevo autor, acuerdo? Y luego sigo adelante y hago clic en el botón. Lo cual me trae de vuelta a mi primera página y estoy viendo mis nuevas adiciones. Entonces la creación funciona, Está bien, así que la única manera no funcionaría es si tal vez el a p que no estaba corriendo o hubiera algo aire de gasto en el camino o algún tema de permisos. Recuerda que el administrador debe poder hacer clic en este enlace y poder hacer cualquier cosa. Entonces, Makesem, estaremos centrándonos en algunas correcciones esenciales. Algunos fuera de las cargas. Um, ya sabes, los reyes aquí y allá en también estarán poniendo algunas autorizaciones en los enlaces para asegurarse de que no muestren o rechacen activamente a personas no autorizadas para acceder a ellos. 49. Correcciones y agregaciones esenciales del diseño: Oigan, chicos, bienvenidos de nuevo en este video. Simplemente vamos a estar pasando por nuestras páginas y haciendo algo que considero esencial arregla un minuto de ideas diferentes de mí, y eso está bien. Pero sólo quiero limpiar un poco la interfaz, y voy a empezar con mis componentes personalizados. Entonces en la batalla de calor off con probablemente tomó algunas decisiones que, bueno, me refiero a algunas decisiones que estoy a punto de cambiar, empezando por mi componente de mensaje de carga. No, no quiero en cada tuck tres y probablemente quiero un remolcador H cinco. Yo quiero que esto sea una info de alerta y no secundaria, ¿ verdad? Por lo que no es tan agresivo en su presentación. Entonces ese es el mensaje de lording encendido. Voy a repetir algo. Repite mucho. Yo quiero que la alerta descartable también sea una ville para alerta, um, um, para alertas de época, otras peligrosas, inestables una vez contra las cada cinco y no un H tres. Por lo que terminé con esas dos modificaciones me en curso a mis leotardos principales. Está bien, así que en compartido, puedes ir a mí y Leo's en lo que voy a hacer en este archivo en particular es Poner el contenido dentro de una tarjeta. Muy bien, Así que tengo mi do algunos ajustes para reemplazar esa sección entera dentro del Dave principal con la tarjeta, uh, uh, dar información que regresa de Bootstrap. Creo que tengo demasiados profundos aquí o una vez en sewa. Está bien, ahí vamos. Entonces lo que estoy haciendo aquí es que estoy viendo por dentro el contenido. Ese es el problema. Dentro del aire de contenido que hemos venido renderizando solo cuerpo bajo 60 millones de estación. Voy a poner un cuerpo dentro de una tarjeta. Dips habría hecho la tarjeta si con registrarse e iniciar sesión. Por eso las tengo abiertas también. Entonces aquí estoy diciendo que quiero un auto que quiero un cuerpo de cartulina para tener el cuerpo en él. Está bien, así que eso es lo que estoy haciendo ahí. Entonces, para registrarse donde estábamos creando la tarjeta, ya no voy a estar usando la tarjeta aquí en ya no voy a dar esto. Bueno, puedo dejar eso con el título de auto, um, um, la clase de título de auto. Por lo que ya no voy a poner la tarjeta sólo en el registro, pero no todas las páginas lo harán. Mira, tendremos esa pequeña frontera. Al igual que lo que el inicio de sesión y registro p acaba de tener que saber. ¿ Verdad? Entonces eso es registro. Yo voy a hacer lo mismo por Le Guin. Toma toda la tarjeta, Diego que dan. Y yo solo estoy así que solo estoy resaltando y usando shift y tina toe, tire de ella hacia atrás hacia la izquierda. Está bien. Y entonces puedo estandarizar como mis mensajes de error aquí. Diga, Mira, estoy usando los que escribimos primero que algo salió mal. Algo salió mal. En cambio, solo voy a usar mis componentes de mensaje de flecha para poder cambiar aquí. Mensaje de flecha encendido. El chulo es que quiero cambiar. Apertura cambiará la ropa también, y solo puedo quitarme eso, así que lo haré. Ah, lo siento. Y luego mensaje. Correcto. Tenemos que dejar pasar eso como un mensaje. Entonces, ¿tan cerca? Está bien, así que hay un mensaje encendido en realidad no necesitan esta parte de cierre. Es una llamada de auto cierre. Está bien, eso se ve mejor. ¿ Hay algún mensaje? Y luego pasamos por encima el mensaje de que iba a copiar esto para no tener que carnicar tanto al que está maderando. Andi, acabo de estar a ver con el intento de tala y luego quita éste. Está bien, así que eso es todo para las cargas principales en el registro y el registro para que pueda cerrar esas ventanas. Está bien, entonces estoy revelando lo que no necesito y luego dentro de fuera autor idiota. Sólo voy a añadir la clase que dice título de la tarjeta. Entonces eso es que sabemos en todos los puntos dónde estamos y mira hacia arriba. Es más orgánico. Podría caber justo en justo a corriente caer en errores ortográficos de gasto del mensaje de carga . El mensaje de error. No creo que tenga que hacer más cambios estéticos aquí. Pero sí recuerdan que nuestras ediciones, borrar y crear páginas están reservadas para nuestro, um, para nuestro he estado en ropa de calle derecha, lo que significa que no quiero que un dedo del pie del cliente navegue directamente a cualquiera de estos. Entonces hay dos cosas. Uno lo voy a ocultar en el menú encendido. Ahí es cuando llego al índice. Estaré escondiendo esos botones en el menú, pero también quiero decirle a la página que sólo esta regla particular se autoriza dedo par. Mira la cama. Por lo que aunque naveguen hasta él manualmente tocando en la URL, esta velocidad debe seguir los rechaza sus intentos de llegar más allá porque no pertenecen. Muy bien, entonces lo que voy a escribir aquí está sobre atributos. Así es, otra página que vemos en San atributos en. Entonces estoy agregando un atributos desconectados de la res. Está bien, así que recuerda el mismo atributo autorice que construimos en el a p I. Es aplicable aquí dentro directamente dentro fuera del componente de reserva, ¿ verdad? Entonces puedo decir entonces reglas iguales. Y entonces puedo decir agregar gira ministerial. Está bien. Entonces a pesar de que el a p I está rechazando los intentos como vimos antes del dedo del pie crear nuestro editor o hacer cualquier cosa que los clientes y se supone que hagan, a pesar de que el AP lo está rechazando, podemos construir nuestros clientes toe también se adhieren a esas reglas . Entonces eso nos escatima el A. P. que llamo bien, porque cada vez tal vez estás usando un servicio que cuesta por llamada del FBI. Por lo que quieres dejar que el cliente minimice esos un par porque tanto como sea posible, por lo que en el delete hacemos lo mismo en yo también voy a poner este dedo del pie tener la tarjeta. Perdón. Classique tarjeta Waas título de tablero. Está bien, así que vamos a borrar No creo que tenga que cambiar nada más aquí Andan crear. Hacemos lo mismo donde agregamos ese atributo solo para administradores. Deja que el que el título tenga título de tablero de cartas. Y si sientes que sabes, un poco de llamarada que probablemente puedas poner en cada una son regla horizontal debajo de eso para conseguir , como, una pequeña línea para mostrar. Está bien, así que voy a poner un remolcador br. Ya sabes, solo estoy pensando mucho. No sé cómo se va a ver esto. Yo sólo estoy haciendo estas cosas. Pueden seguirme si quieres. No tienes que hacerlo, pero solo estoy poniendo como un espacio entre el título y luego alinear y en otro espacio antes del siguiente bit off contenidos. Todo no se ve tan cerca como lo hemos visto mirando bien. Y luego en el aumento de índice o voy a hacer lo mismo poner en esas líneas, poner en la clase, pero luego en el índice, todos deberían tener acceso. Um, ya estoy autorizando el acceso al discurso del índice a través de las aplicaciones internas. No necesito hacer ningún modelo de autorización especial encima de eso otra vez. ¿ Verdad? Entonces solo voy de una manera diferente enfermo y autorizo ves que tenemos la vista de autorización que están a punto de mirar tan bien, estamos en no autorizados cuando Index, no, en lo que vamos a hacer está configurado que sólo el administrador puede ver este botón. Está bien, así que si solo quiero que los administradores vean este botón no le estamos diciendo a los administradores solos que vean. El espíritu va a querer limitar la visibilidad de este botón para que pueda decir autorizar vista. Entonces veremos a un autor como tú de un ejemplo anterior. Con el menú podemos ver reglas es igual para agregar ministerio ter. Muy bien, en cualquier tema Emily puso adentro fuera de esta vista autorizada, Todd sólo aparecerá cuando se cumpla el atributo para las reglas. Y así podemos hacer eso por nuestros botones también. Por lo que tenemos el botón de vista el botón de edición y o eliminar puntos. Yo solo quiero que los administradores sean capaces de ver esos botones, entender el cocinado encendido, luego ver, autorizar reglas de combustible igualitar add ministerio tour en entonces y luego dentro de esta sección vista autorizada . Yo sólo voy a decir que son dos botones. Muy bien, así que echemos un vistazo rápido a lo que obtenemos cuando iniciamos sesión bajo. Los dos usuarios diferentes son. Por lo que estoy amando aquí como Delia va a ir por encima de los autores del dedo del pie. Y entonces veo aquí que bueno, estoy viendo esa frontera. Estoy viendo mi discurso índice un poco de luz del día. Bueno, tal vez yo pueda quitar eso primero, ser nuestro porque los perros en la edad tienen un poco fuera de poner, así que eso está bien. Tenemos esa línea y entonces sólo estoy viendo las opciones que son aplicables del pie a un cliente que son para ver. Y luego si hago clic en ver, entra Vale, vuelvo la lista, pero no puedo hacer nada más porque solo soy cliente. Entonces así podemos hacer cumplir las autorizaciones desde el lado U I. Entonces adelante. Entonces se ve eso agregando el auto al me lay. Cualquier otra pieza que yo seguiría también va a tener esa tarjeta tipo off look y sentir a ella. Está bien. Hay una cosa. Voy a modificar aquí cuando se trata de mis autores, y eso es del lado A P I. Entonces Randall está diciendo que no hay libros para este autor, pero estoy dolorido. Al menos hay un libro ahí. 50. Corrección del libro Author-Book autores. respuesta en JSON: Oigan, chicos, bienvenidos de nuevo en este video. Vamos a estar resolviendo ese tema donde los autores no están viendo los libros están. Cuando miramos al autor, no estamos viendo el libro. Entonces la verdadera razón es que necesitamos dedo del pie. Agrega esta línea fuera de cancha toe sobre Repositorio. Donde estamos viendo incluir los libros, ¿verdad? Por lo que los autores para un autor tiene una lista fuera de libros, así que estamos viendo cuando recuperas a los autores para tratar la lista de libros adjuntos a ellos se incluyen en los datos. Entonces eso es lo que realmente está viendo esa línea. Entonces estamos agregando eso al hallazgo todo encendido. Después en un refractor, la cancha un poco más de frente por idea donde agregué la misma línea. Pero cambié de encontrar por nuestro hallazgo a A creo que fue dedo del pie primero nuestro predeterminado un cantar, y luego usamos una expresión lambda para comparar el i. D en el registro del autor con la idea que estamos buscando. Entonces es el mismo efecto justo en la cancha diferente en entonces lo siguiente que tenemos que hacer es incluir de ti obtener una biblioteca llamada SB net core dot NBC dot newton soft Jason. Entonces hay uno aquí. Noone self Jason on on. decir, Esdecir,funciona, pero porque fueron inducidos núcleo 3.1, queremos el que está especialmente diseñado para correcto, Así que vamos a conseguir eso. No lo cargues en nuestro proyecto. Entonces tendrá nuestra próxima acción. Pasemos a nuestro inicio de esa serie donde estaremos agregando toe the act controller una opción especial cortesía fuera de la biblioteca. Acabamos de instalar a alguien que diga Atracado Odd nuevos giros blandos J hijo. Está bien, vamos, entonces vamos a abrirnos. Algunas opciones van a decir Opie para gráficos son para abreviar. Andi, sólo voy a romper línea aquí. Alguien que diga, Opie, déjame cerrar el aparato antes de que me olvide. Entonces Opie u opciones atracado? Yo quiero serializar o sentar algún cereal. Las sentadas de Isar atracaron a nuestros amigos. Y luego, si miras, ves que se elimina el manejo del bucle de referencia. El más de la entrega de libros de referencia. Por lo que un libro de referencia significa que cada entidad se conoce entre sí. Eso es un problema, ¿verdad? Por lo que el manejo de bucle de referencia es igual a Newtown Soft dots J son dots on. Déjame romper la línea aquí otra vez para que no salgamos demasiado lejos de la pantalla. Newton está fuera de ese manejo de grupo de referencia Jason dot. Muy bien, Así que le estamos diciendo a O. R um controlador que queremos dedo del pie deja que Newton esté fuera de manejar el bucle referenciando, y voy a decir que Ignora algunos viendo anular la atención en la que estarías en tu atención. Estás pagando al tema en ese Newton lo maneja blanda y nadie Soft lo va a ver. Ignorar esa referencia. Muy bien, así que intentemos iniciar nuestro proyecto. Está bien, Así que vamos otra vez. Entonces dentro de fuera para aplicación, ¿verdad? Íbamos a decir autores, y luego sacamos la lista de autores. Puede tardar un poco más porque no, hay una pierna extra fuera, incluyendo los libros. Pero una vez que estás viendo esa lista, eso es bueno, porque yo lo hice antes. No estoy agregando todo el material de referencia de Jason, así que si lo acabas de agregar al descanso terriblemente en el jugo suave de Newton en ignorar parte, entonces esto nunca se movería más rápido cargando mensaje justo encendido. Entonces, cuando lo miro como a Evans, sé que ella tiene un libro, y ahí vamos. Entonces ese es el título del libro. El libro no tiene ningún precio, por lo que los datos pueden no ser una pantalla, pero el punto es que esto ya no está diciendo que no hay libros. Entonces este autor, nos estamos metiendo por el autor en Estamos viendo los libros aquí para dicho autor, Así que primero podemos asegurar que eso está bien. Está bien, vamos, eso es todo para esta actividad. Por lo que a continuación, sólo revisaremos todas las modificaciones que se hicieron y luego revisaremos nuestros cambios. 51. Revisar y añadir cambios a GitHub: Oigan, chicos, bienvenidos de nuevo en este video justo dentro para revisar algunos de los cambios que hicimos en esta sección sobre diff hay otras magnitudes que necesitemos para hacernos revisar, entonces solo los conoces. Entonces voy a empezar con la palabra que hicimos en el repositorio basado o el hecho que creamos el repositorio de autor de ojos para heredar del repositorio basado una vez más. El razonamiento para esto es el hecho de que las operaciones actuales siempre pasarán por las bestias. Y la mayor parte de lo que estamos haciendo con las funciones de autor, repositorio o autor autor sería crudo. Por lo que sólo tenerlo implementa el póster de baster que déspotas en la clase de autor sobre. Entonces tomará acción en contra de la clase de autor a lo relevante en punto, como especificamos, ¿ verdad? Por lo que en el repositorio basado, también modifiqué. Entonces esa es la interfaz o contrato también se modificaron, um toe incluir el derecho de almacenamiento local, para que podamos recuperar de la historia local para soportar hablar e incluido en el bateador de autorización para cada solicitud, porque entonces necesitamos asegurarnos de que la persona esté autorizada para llevar todas las opciones. Quizás quieras envolverlos en capturas de pista, ¿verdad? Entonces, ¿qué? Lo que podría suceder a veces que en base a la forma en que la aplicación, quienes lo han visto desde Lord y autenticación el acceso fuera del almacenamiento local podrían intentar suceder antes de que algunas otras cosas se airen en su lugar para que puedas interrumpir estas intrincado es para especie de minimizar el aplastamiento que podría ocurrir en su aplicación. Entonces seguimos adelante y lo hicimos con todas las solicitudes, solo consiguiendo el token al portador e incluyéndolo en el encabezado de los clientes. También nos adelantamos y modificamos a nuestro autor. Bueno, creamos páginas de autor, así que creamos una nueva foto sobre pusimos en los componentes y miramos la diferencia entre cada componente y lo que podemos hacer sostener si las declaraciones nos ayudan aún a dar problemas visibles a los usuarios a lo que está pasando, cómo podemos crear componentes personalizados. Entonces no tengo dedo del pie seguir reescribiendo la misma cancha, pero ya sabes, mensaje de error versus cargar mensaje en ese tipo de cosas. Miramos todos los límites de fin de semana, personas autorizadas o personas autenticadas en base a sus autorizaciones. Entonces empezamos con nuestro menú están, bueno, no bien, lo hicimos con el menú ya, pero lo hicimos más en el discurso de índice donde dijimos que solo los administradores podrán ver el create botón encendido. Sólo los administradores podrán editar nuestra vista, las opciones de edición y eliminación. Por lo que también miramos todo el fin de semana en realidad a esa autorización a la página agregando esos atributos para especificar qué regla puede hacer qué. Entonces lo hicimos bastante. Sé que vamos a facturar bien antes de seguir adelante. Algo muy importante que hicimos fue incluir en la startup del FBI que se hiciera caso omiso de las referencias circulares, arte o de bucle en DSO. Si estás haciendo un proyecto más grande con más relaciones que solo un autor y un libro como lo estoy haciendo aquí, entonces esto te será útil cuando estés tratando de conseguir esas cargas útiles con el autor y la lista fuera de los libros son o la que entidad con la lista fuera de la entidad o entidades relacionadas. Por lo que esto irá ah muy lejos en resolver muchos problemas en aplicaciones más grandes. Entonces sigamos adelante y revisemos todos nuestros cambios. Distraigo la solución. Ve a comprometerte, Andi. He puesto en mi mensaje, agregado autor operaciones crudas y arreglado algunos problemas A p I. Voy adelante y comprometo todo el fregadero Onda. 52. Setup Create Create Book - Parte 1: Oigan, chicos, bienvenidos de nuevo en esta lista, vamos a estar configurando o creando funcionalidad para nuestros libros sobre esto va a yo estaba haciendo bastantes actividades, así que solo quédate y diviértete conmigo. Entonces vamos a empezar por ir a la carpeta de libros yendo del pie. Agregar en. Creating Over Newer es un componente que va a ser más crea Y cuando se crea el componente todos equipados con su ruta en la parte superior el atributo para autorización Y solo estamos autorizando a los administradores sobre estamos inyectando el repositorio de libros como así como el autor Repositorio También hizo un taxi callejero crear libro No en o crear ex goingto tener ah, nuevo Todd. Bueno, no es nuevo. lo hemos hecho antes, pero el tiempo es editar forma, que es un blazer italiano especializado encendido. Vamos a hacerle saber que el modelo debe ser atención toe es modelo sobre entonces sobre válida enviar Queríamos manejar crear operación. Está bien, así que obviamente no tenemos ningún modelo todavía, así que necesito declarar un objeto modelo dentro del cable, y fui a ver un modelo de libro privado es igual a libro nuevo. Está bien, ahora, hay número de cosas que tenemos que lograr. Y hago todo lo posible para no, ya sabes, estar por todo el lugar y lo rastreé de manera estructurada. Por lo que voy a empezar a rellenar los campos para el formulario. Muy bien, así que las 1er 2 cosas que tenemos en nuestro formulario son nuestro validador de anotaciones de datos en nuestro resumen de validación. Está bien, así que eso es solo para que también necesitamos agregar anotaciones a nuestro modelo de libro. Pero una vez más, sólo hay que ir mal ellos uno por uno. Por lo que quiero en la sección de entrada para el título del libro. Muy bien, entonces usando Bootstrap Smith odd para forma, solo voy a decir dejar clase forma grupo holandés on. Entonces tengo la etiqueta para la idea o para cualquier propiedad. Lo siento elemento tiene el título i d el. Entonces tenemos nuestro texto encendido. Entonces los tecnicos de entrada eran vinculantes. Ese valor para modelar título oscuro en fuera de curso para darle el control de forma en el I D off title son la siguiente sensación para la que nos vamos a preparar es el ISBN. Entonces es básicamente lo mismo, excepto que cambiamos toda la etiqueta por el texto en el encuadernado. Entonces esa es la sección para el I s bien. También queremos facilitar la entrada de un precio para que todo sea igual. Excepto que la entrada no es un número de entrada. Muy bien, entonces el precio no es una cadena, es un valor numérico. Por lo que tenemos que usar el número de entrada porque vamos a conseguir alguna forma fuera de la época. En realidad cometió ese error ya empezar Solo apuntando. Te dijo que cuando es numérico tienes número de entrada específicamente ¿Por esa razón? No, el siguiente al que me gustaría entrar sería el autor. Está bien, así que quiero indicar quién es el autor de este libro sobre ellos. Para mí, un control apropiado para eso sería una lista desplegable. Ahora aquí viene nuestro primer tipo off excitable, fuera de la norma operación. Entonces para obtener una lista desplegable en blazer bien, para obtener una lista desplegable de autores, eso significa que vamos a tener que buscar la lista de autores del autor N p r a p i n punto. Por eso, en caso de que te preguntes por qué me inyectaron esto. Por eso tengo esto inyectado. Entonces voy a tener dedo del pie en cordón, hacer una llamada al autor. Entonces lo que voy a hacer en la corte, tú lo dices. Ya puse el grupo de formularios y la etiqueta. Entonces voy a dejar eso por tanto. No, pero me voy a llevar aquí fuera de la cancha. Así que fui dedo del pie han protegido en luego anular una tarea de sumidero en inicializado el fregadero en luego esta función en. Todos sabemos que esto es lo que Lourdes Cuando los Señores Componentes, esto va a ser despedido dentro de esto, necesitamos llenar algunos barriles. Necesito alguna variable que vaya a tener desactivada la lista. Autor. Entonces sólo voy a decir privado. Ah, alquilé tipo autor, autor bur modelo ¿verdad? Y entonces el nombre de esto es autores, ¿no? Entonces esto no va a tener ningún valor en un principio, Pero luego en la inicialización, off o form, voy a ver que quiero que los autores sean iguales del dedo del pie y luego esperamos el resultado de nuestro reporte de autor que los obtengan nos vemos. A pesar de que estoy lidiando con libros. Puedo llamar a cualquier repositorio que quiera en el punto en que lo necesite. Obtener los datos en. Entonces. Una vez que tengo autores, no puedo usar. Son los filetes, Una lista desplegable autores. Muy bien, así que necesito construir en realidad esta lista desplegable. Entonces si eres sólo otra forma de NBC que en realidad sólo se tratara de controlar u otro uso fuera que pudiera cuestionar Ver, tendrían un control. No tenemos control, al menos tal vez aún no. Entonces, ¿vamos a trabajar con qué? Tenemos a alguien que solo cree una lista selecta. Está bien, vamos. Entonces voy a decir que quiero enlazar el valor de esta lista selecta toe asignado modelo acoplado autor I Li. Entonces eso significa que cualquier autor que sea seleccionado de esta lista desplegable estoy rastreando ese valor . ¿ Cómo en el primero presentado? Ese es el valor que pretendo usar para presentar un poco de facilidad. Muy bien, Y entonces otros atributos para el insomnio serían el hecho de que es un control de formulario sobre la idea es oficina A C o copiarlo y pegarme. Por lo que etiquetan cuatro Autor sobre ideas. Autor. Había gente. ¿ Todo bien? Eso probablemente no te atrapó. Entonces eso está bien. No, quiero tener la primera opción siendo el selector genérico u observaciones fuera del signo at . Está bien, así que el 1er 1 va a ser la opción genérica para decir, Simplemente seleccione en el autor Onda. Yo soy tan Oh, esto debe ser ciego o no ciego nos valor. Pido disculpas. Por lo que eso debe ser en firmado bind on, entonces. Modelo dot autor I d derecha. Por lo que tenemos la primera opción siendo un genérico, Sin valor select author no son. Pero entonces cada otra opción quiero decir si ahora estas afirmaciones eran chequeadas Si algo se sabe, como podemos decir, espero que podamos decir, pero sé que son muy importantes. Entonces esto debería tener el a signo si está bien, estamos comprobando si los autores no es igual eterno, entonces realice la operación. Porque si intentas llevar a cabo la operación mientras es nula y sabemos que será no sobre las páginas inicializadas en un plan al AP y respuesta por mucho tiempo que pueda tardar, no queremos que el componente se bloquee. Está bien, entonces donde llevaban a este viejo cuando ya no se sabe. Entonces si Autores no se sabe que para cada uno y estoy yo solo escribí para cada uno y presioné dos veces y me generó eso para mí. Y diré autor en Autores Quiero en opciones en realidad solo van a copiar esto. Entonces para cada autor, quiero crear una opción que tenga el valor off autor oscurece Heidi Regresando de la lista de autores que van de la base de datos sobre lo que se debe mostrar será el primer apellido Neil Onda del autor . Está bien, entonces lo que esto va a hacer es generar una lista desplegable para mí en para cada autor que está en la base de datos cuando se haga este AP al que llamo los recuperará aquí. Entonces, quiero decir, si te quieres poner en auto completo porque tal vez esta lista quiero decir, con 100 autores me caí, Esto podría no ser lo más práctico, pero para no, sólo trabajemos con su la siguiente sección en mi forma de agua ya creada. El trato para el grupo de formulario sería para nuestra subida, así que acabo de tener una etiqueta en lo estoy llamando a esto el día antes de Andi. No debería ser perfilado. Perdón, me dejé llevar. Esta debe ser la portada del libro. Está bien, así que foto de libro, nuestra foto de portada de libro, sea donde quieras llamarla esa es nuestra etiqueta. Entonces necesito un insumo especializado aquí sobre ellos, que tengo que ir a nuevo get y conseguir una mentira antes de eso. Entonces hagámoslo juntos. Entonces fui a ir a nuevos consigue y Justin te da por conseguir. Eso es ir a la solución, ¿verdad? Haga clic en el proyecto en, luego vaya a gestionar para que se pongan los paquetes. Estamos buscando archivo de entrada blazer. Muy bien, así que blazer archivo de entrada en. Asegúrate de tener el include pre realmente stick porque, bueno, una vez más, una vez más, esto es tecnología de borde sangrante, por lo que hay un resultado ahí, pero se está trabajando en uno. Entonces cuando incluyes el pre-lanzamiento, obtienes este. Ese es su archivo de entrada blazer encendido. Simplemente queremos no saber eso en nuestro proyecto. Y una vez hecho eso, necesitamos asegurarnos de que estamos coned para ese platillo en proyecto Tore. Por lo que nuestra primera modificación va a ser al lado de nuestros hosts del archivo la puntuación a la solución Explorer. Encuentra anfitriones están ahí. Está en las páginas del archivo host de partitura en, luego debajo del blazer, no del servidor dot gs. Voy a agregar este script donde estoy haciendo referencia en la partitura contenido slash blazer archivo de entrada slash input file dot Js en nuestra próxima modificación está en nuestras importaciones, así que solo encuentro importaciones rápidamente. En ahí estaremos agregando una declaración de uso para los derechos de archivo de entrada blazer. Por lo tanto, sepan que tenemos esos instalan o ingresan en nuestros directorios de aplicaciones. Estoy revelando todo lo que no necesito. No, puedo acceder a un componente especializado llamado archivo de entrada. Entonces abrí mi dedo del pie y digo archivo de entrada justo en. Entonces tengo que poner algo ahí para decir sin cambios. Entonces le vamos a dar funciones. Yo sólo una selección de archivo mango, bien, Y entonces eso es un auto cierre Tuck on. Después al final. Bueno, para terminar el formulario, solo estoy agregando un botón beat y primaria tiene un ícono de lápiz y eso dirá, crear libro on. Entonces tendré uno que diga de vuelta a esto, que es sólo para volver atrás. Entonces esta originalidad se tuvo un impuro llorado Así que quiero decir, como dije, realmente no importa. Entonces, ¿qué harías? Alot se define todas las funciones del, por lo que necesito definir mango crea selección de mango. Andi, volver a la lista. Está bien. Alguien para empezar con el más fácil de lograr. Y esta batalla está tan en. Orderto usado Respaldado una lista. Voy a tener dedo del pie tener mi gestor de navegación. Está bien, lo siento mucho. Esa debería ser esa señal. Inyectar monitor de navegación en el marcador, gestor de navegación. Y luego solo voy a abordar primero la disfunción de batalla. Entonces yo sólo estoy en remolque. Tener privado evite volver lista del dedo del pie en entonces. Esto sólo se va a llamar suficiente manager Onda se Eso navega a en. Entonces el camino al que estamos navegando es slash books slash. Entonces se está volviendo al discurso de índice para nuestros libros Semi colon, y eso es todo para esa función. Ahora vamos a meternos en asuntos más serios con el fin de camiones el expediente que no se presenta o al menos seleccionado, Correcto. Entonces recuerda, tenemos en unchain, así que en realidad estaremos recogiendo ese archivo y manteniéndolo temporalmente. Bueno, lo que necesito es una variable que en realidad va a tener ese archivo. Entonces voy a tener una privada ah, propiedad fuera tipo I lista de fuego en entrada on. Va a tener el archivo de nombre. Muy bien, vamos, entonces. Obviamente, vamos a estar haciendo un P. al que llamo. Por lo que también voy dedo del pie hacer mis lingotes por su éxito. Pero quiero hacer esto global porque lo voy a usar de cierta manera que no creo que lo haya usado antes, así que nos pondremos un poco creativos con la cancha, ¿ verdad? Entonces, no, voy a escribir mi teléfono mostrado dedo del pie manejar las selecciones de fuego. Todavía no estoy del todo en el lugar donde voy a conseguir el expediente o conseguir la presentación. Entonces queremos manejar primero el fuego seleccionado, Así que voy a tener. Perdonen mi atroz ortografía. Privada Un mango de tarea de fregadero. Sólo tienes que copiar esto, así que creo que lo escribiré más rápido, manejar la selección de archivos en entonces se va a quitar el parámetro son un perímetro fuera tipo I archivo en engaños. Entonces solo estoy copiando eso, pero en realidad es un aria. Está bien, entonces eso significa, ya sabes, si estamos cargamos múltiples ventiladores para ser seleccionados. Bueno, así es como pasarían mucho. Pero como sabemos que solo queremos un archivo aunque múltiple o seleccionado o estamos facilitando múltiples las esquinas, sabemos que solo queremos uno. Y así vamos a asumir que el 1er 1 en el potencial Ari es el fuego que queremos. Muy bien, así que estamos recibiendo el primero nuestro default del área que entró. Estamos almacenando eso en nuestra variable nuestro archivo de propiedad que declaramos antes. Entonces voy a decir si los archivos no es igual a saber, ¿qué quiero hacer? Está bien. Entonces si el archivo no es igual a saber y esto es una portada de libro, esto no es Ah, libro Summer. No es un documento. Entonces sé que solo quiero imágenes, ¿verdad? Entonces voy a querer asegurarme de que el nombre del archivo sea un cierto Bueno, es una cierta extensión. Yo solo quiero en Hay muchas formas de comprobar extensiones, pero voy a mantenerlo sencillo. Alguna distancia. Es una simple declaración sólo para asegurarse de que este archivo nuestra Lisa finalmente, um oh. Afirma jpeg PNG, Far Jeff son Y esos son Bueno, vamos a limitarlo a Jim Pick. Entonces, ya conoces a Jay Peak y B J P g o J E P g en PNG. Esos son los tres a los que estamos atendiendo. Entonces voy a primero, conseguir el nombre. Está bien. Tanto lo siento. Este esperma a debería haber sido llamado archivos. Basta con notar la línea roja ahí. Está bien. Sí, eso está funcionando. No. Entonces, primero estoy sacando el nombre del ayuno enviado. Por lo que el nombre Vier es igual a archivar ese nombre. Entonces voy dedo del pie tener una simple declaración if para comprobar si nombre punto contiene las letras J p g. O debería decir la cadena PNG o la cuerda J. Paige. Está bien, entonces eso es esencialmente lo que estamos revisando ahí. Creo que dejé una brisa. Está bien, Entonces una vez que estamos revisando y si lo hace, entonces lo que quiero hacer es mostrar esa imagen en la pantalla, entonces, no, voy a tener a otra variable, ¿ verdad? Entonces voy a tener otro verbal privado sobre este o propiedad, y éste va a ser datos de imagen de cadena. Estás así que en realidad vamos a estar analizando la imagen en remolque. Qué, para llamar a nuestro flujo de memoria y y mostrarlo en el foso. Entonces esto es entero o esto es una especie de gente entera lograda mostrando previsualizaciones fuera imágenes cargadas para que alguien declare, um, variable off type memory stream sobrevivir m s es igualdad nuevo miembro stream y eso va toe tienen algunos requisitos bibliotecarios. Por lo que puedo poner la declaración de uso en esto en este archivo o este componente. Entonces necesito sistema que yo todos para eso. Está bien, así que no lo puse globalmente en todas las importaciones. Puedes si quieres. Como dije, depende de ti. Correcto. Pero luego después de declarar, recuerda stream, voy a tener el dedo del pie esperando archivo que los datos en, luego los datos en el archivo. Voy a copiar dos. Entonces en realidad hay una copia a un cantar y estamos copiando los datos de los archivos en la calle de la memoria . Está bien, así que eso es lo que está haciendo esa línea. Entonces tenemos nuestro tampoco y quiero ahorrar hierro hay igual a un nuevo lector de stream en esta calle. Lectores leyendo los datos del archivo. Entonces nos vamos con el dedo del pie. Entonces ves que hay bastantes pasos para hacer esto, que necesito conseguir la cadena incluida alguien para guardar nuestra imagen. Bay 64 datos. Muy bien, entonces lo vamos a convertir en una base. 64 string es igual a convertir acoplado Toe Bay 64 string on. Entonces. Esto requiere un área de mordedura, que simplemente, um bueno, necesitamos llenar esta área de mordida usando lo que está en el flujo de memoria. Entonces vamos a ver a M s atracados. Entonces tiene una función Desisto ari, que convierte eso en una matriz de mordedura. Muy bien, entonces. Creo que necesito estar un poco más bien. Sí. Pensé que necesitaba ser explícito con el vire en lugar de seis. Bueno, ver cuerda en lugar de fuego. Pero sigue siendo renderiza un bajo cuerdas. Eso está bien en. Entonces puedo No. Entonces eso significa que necesito otra variable. Entonces sí tengo la variable ya. Te perdiste datos. Tú lo eres más. Voy a ver datos de imagen. Tú Earl es igual a on. Entonces estoy con los cuatro meses A cadenas especiales, el formato string dot on. Entonces vamos a estar pasando teatro. Holan, imagen slash p y G Todo bien encendido entonces definió el en cording, que es la base 64. Está bien, coma. Entonces realmente necesito cuerda. Cuatro meses. Podría haber usado la concatenación o la intercontaminación, pero eso está bien. Entonces lo que digo es que quiero gastar mi formato correctamente. Estoy construyendo una cadena especial que tiene datos frescos en la barra de imagen PNG en, luego ve esa base 64 entonces va a proporcionar el valor fuera de lo básico antes, que es lo que tenemos aquí. Imagen basada en 64 datos. Entonces creo que eso puso una coma, poner eso ahí. Está bien. Y entonces lo que todo esto va a hacer es temporalmente Lord cualquier imagen que se cargue en memoria para que podamos exhibir para vista previa, ¿ verdad? Todo ese esfuerzo por conseguir un pequeño adelanto. Por lo que voy a querer poner la sección de vista previa en algún lugar cerca de la sección de subida de archivos. Entonces ahí mismo, voy a tener en si declaraciones eso va a comprobar si nuestra imagen más tarde, Earl, Porque está vacía. No, Pero entonces una vez que entra un archivo, se carga en los recuerdos. Cuando totener datos alguien que decir, si no está vacío, correcto, Si no es Knoller espacio tranquilo, entonces quiero un remolcador de imagen que va a tener los datos de la imagen. Eres como la fuente. Y recuerda que se trata de esos datos de imagen. Estás justo aquí. Está bien, veo que tengo unas llaves stree son por eso. Muy bien, así que este va a ser nuestro SRC en que renderizará nuestra imagen de vista previa una vez que se cargue el archivo . Está bien, para que puedas ajustar el estilo. Yo sólo lo estoy apagando. $ pequeñita miniatura. Para que cuando tú, ya sabes, podamos ver en estas vida No. Algo que quiero comprobar, sin embargo, es si el expediente está invitado porque estoy viendo si contiene esto, entonces bien. Pero entonces si alguien sube un pdf, ¿qué es exactamente lo que quiero hacer? Bueno, quiero darles al menos un extraño prompt para decir que un pdf no es una carga son Son los tipos de archivo invitados. Voy dedo del pie introducir otra variable aquí. Simplemente lo pondré debajo de la privada de éxito. Y luego tengo a Bull, su tipo de archivo inválido. Y solo estoy inicializando la farsa del dedo porque si bien no hay archivo en el ya sabes, cuando empezaron las páginas, entonces no hay invalidez fuera del tipo de archivo, ¿ verdad? Pero entonces quiero sentarme. Entonces lo que quiero hacer saber es decir, si el archivo no es igual para saber en, entonces ver si contiene esto, entonces bien. Pero entonces quiero otra aquí, que se va a decir de lo contrario el tipo es inválido es igual a cierto. Entonces si no contiene una fuera de estas extensiones o las extensiones que estime válidas, entonces esto es lo que imágenes. Pero esto es algo global. Si no contiene la imagen, son el tipo beta que considera válido. Entonces vas a decir que el tipo de valor es cierto. Es inválido. El tipo es cierto. En el otro lado, si subí un tipo inválido en los vítores nocturnos de archivo, va a pasar de nuevo por este cheque porque cada vez hay un cambio derecho en cambio. Esto va a ser despedido. Entonces si abro con una válida esta vez, entonces quiero cambiar. Es inválido, por lo que el dedo del pie cae bien. Bien. Entonces si consigo uno válido, entonces es falso. Entonces aunque empecemos por nosotros y subamos uno válido, entonces esto se queda Wasif. Subo una batalla el primero. Esto cambia lo verdadero y necesitan la corriente yo mismo después. Entonces cambia de nuevo a la cuarta. Y eso es realmente lo que queremos. Bueno, y sí dije que les queremos dar una señal visual como dedo del pie, um agujero si el archivo es válido o no. Entonces voy a volver a subir al sexto hijo en. Voy a ver ¿dónde está? Voy a ver aquí que si el Volumen cuatro es tipo inválido es verdadero o si lo es, entonces muestro un mensaje de error para decir, Por favor, quita el tipo de archivo no válido y selecciona una nueva imagen a principios de este año. Negro. Muy bien, así que les estamos haciendo saber y solo uso mi componente de mensaje de flecha pasando en mi mensaje especial ahí. Entonces esto me lleva a hacer un cheque más, y podría estar pasando y siguiendo al respecto. Pero entienda, para asegurarnos de que todos nuestros cheques estén completos. Entonces estamos revisando. Si el expediente no es igual para saber, entonces estamos revisando el estado válido, ¿ verdad? Entonces, ¿y si la persona quitó el fuego? Porque sí dije que no es válido. Se puede dejar el bloque de campo. Entonces si tenían una inválida, entonces van a estar viendo este mensaje. Pero entonces si lo quitan del todo, no quiero que vean el mensaje. Entonces si cambian la entrada y dispara los eventos de selección de mango, entonces voy a decir si no es saber más, ¿ verdad? Entonces si efectivamente es no, entonces bueno, si no lo es, puede ser un tipo inválido. Por lo que una vez que quites la imagen por completo que esto cambia las caídas en blazer siendo tan apagadas , impresionante sabrá que este cambio en quitar ese prompt de la sección. Muy bien, así que estamos bajando muy bien y sabemos que el final que necesitamos abordar está en la presentación válida . Entonces, no, necesito una función para presentación válida el. Voy a poner esa aquí en las secciones de corte o privada una tarea de fregadero crear. Muy bien, entonces, Lo que vamos a hacer primero, son estos Lo que creo que es un primer cheque necesario. Todavía es asegurarnos de que no tengamos un tipo de archivo inválido trabajando con, porque lo que puede pasar es que cuando la persona siente toda la forma y ponen en tiempo de archivo inválido encendido, entonces Bueno, digamos que esto se está mostrando, pero todavía pueden hacer clic. Presentar el. No lo detendrá porque no tenemos ninguna validación corriendo en contra de ésta. Entonces una vez que esto se someta, si nuestro expediente este presidente va a subirlo, va a guardar ese archivo en este tipo, y no quiero eso. Entonces voy a empezar revisando. De no ser así, es inválido archivo cinco veces, Derecha. Entonces si no estamos lidiando con un momento gordo invitado, entonces podemos proceder. Oh, lo siento. Esto acaba de estallar en mi cabeza que si la persona tenía un tipo de archivo válido encendido, entonces lo cambiaron en uno invitado. Entonces no quiero mis datos de imagen. Tú Earl dedo del pie tienes cualquier cosa. Entonces cuando estoy sentado que el tipo de archivo no válido es cierto. También voy a establecer mi cadena grabada Toby igual a string dot empty. Está bien. No quiero tener nada ahí dentro, Así que inicialmente, no tiene nada puesto. El único momento en que debes conseguir algo es cuando se sube un tiempo de archivo válido. ¿ Verdad? Ah, lo siento. Es durante eso. Vacío no es una función. Mi espalda. Está bien, así que eso se encendió en mi cabeza. Sólo sé. Entonces volvamos a la tarea que nos ocupa, que es el guardar o grabar. Andi subsecuentemente subir o archivar? No. Voy a empezar con la parte más fácil fuera que en eso está ahorrando lo requerido. Entonces sabemos que para guardar el récord, necesitamos del dedo del pie obedecer el dedo del pie del éxito. Sea lo que sea que regrese de nuestro llamado dedo del pie nuestro informe que crea nuestro pase en los libros y apunte, crea el nuevo libro pasando en el modelo sobre. Entonces vamos a tener ah, su declaración para decir si tenemos éxito en nuestra presentación, entonces lo hacemos con la lista. Está bien, ahora, sí dije que iba a usar el éxito, um, um, para mostrar un mensaje de error. Entonces voy a en la parte superior decir, si no un éxito. Está bien. Entonces eso significa que tu éxito va a ser usado como nuestro marcador para decir si algo salió bien a ver si algo salió mal con la operación. Muy bien, solo exprese un poco el espaciado. Está bien. Por lo que su éxito va a renderizar o basado en el valor de su éxito, hacemos nuestro mensaje. Entonces por eso lo dije a cierto inicialmente, porque no quiero que esto se muestre cuando se cargue la página. No obstante, si cambia después, entonces lo mostrará. De lo contrario, si fue exitoso, si es cierto, entonces simplemente volvemos a llamar a la lista. Desde alrededor de dos, esto sirve dos propósitos ahí mismo porque simplemente te alejas y también está adherido dedo del pie del botón click para volver a la lista. Ahora hemos hecho la parte fácil. Por mi estimación, esa es la parte fácil. Pero permítanme que sólo lo traiga en este viaje. Entonces ahora mismo, pesar de que tenemos esa carga de archivo y si lo ejecutas ahora mismo, ves una vista previa de imagen sobre todo. Al hacer clic en enviar. No obstante, sólo estamos haciendo el envío a la base de datos para el modelo, está bien, para un libro. Pero entonces, además de eso, no estamos sirviendo ningún dato para el archivo subido. Por lo que en realidad verías sabe uniformemente subido un archivo aquí. Habría sabe, pasando por el cable aquí. Y eso es porque, Oh, ¿ necesitamos en realidad, vas a algún procesamiento para conseguir, como, como, el nombre del archivo. Voy a renombrar el archivo por cierto. Entonces después de todo eso encendido, voy a subir primero el archivo, luego subir obvia el campo de imagen en el modelo de libro en, luego enviarlo a la base de datos. Por lo que el orner diferentes personas lo hacen en diferentes órdenes. Pero eso es todo lo que voy a hacer, acuerdo? Entonces solo estoy haciendo algo de espacio para mis operaciones de archivo, y lo que voy a hacer primero es sacar la extensión del hecho alguien para decir viral txt es igual towpath dots on, entonces, porque nuestro sistema no io tengo X tener acceso a esa ruta, esa extensión y luego puedo pasar en el archivo dardos nombres. Cuando te dije que hay muchas formas de comprobar extensiones, aquí hay una manera de simplemente obtener la extensión así que podría haber hecho eso en apenas comparar la extensión contra estos valores. O sea, cualquiera que funcione para ti, está bien. Muy bien, entonces. Voy a salvar nuestra pick. I d es igual dedo del pie en. Voy a generar mis propios valores personalizados. Entonces quiero algo que sea único que nunca se repita. Entonces voy a usar nuestro bien y quiero decir bien. Eso es nuevo Bueno en entonces. Yo quería ser una cuerda Andi también para que las mercancías siempre tengan guiones. Yo quiero llevar todo el dash insiders quieren evitar que tenga los personajes contiguos Sin guiones entre sidras Hacer un doctor lugar en Dr Colocar alos me para especificar el artículo que quiero er lugar o el cártel on para reemplazar en lo que quiero reemplazarlo por lo que quiero reemplazarlo con lo que en este caso no es nada así que literalmente simplemente dejará todos los guiones y no poner er distinguen en medio, correcto. Entonces al final, fuera del día, mis fotos nuevo nombre sería igual a Y acabo de usar mi signo dolla comillas en ir a conquistar para conocer al I D o escoger I d Tu otro ¿Qué? Está bien. Entonces que eso es lo que es era tu nombre, ¿ verdad? Entonces pick yo d on. ¿ Puede Katyn en la extensión? Está bien. Entonces sea cual sea la extensión originalmente después de ella, Ian , que los boletos A, p y G. No puedo simplemente cambiarlo a j cerdo. No funciona de esa manera. Entonces, cualquiera que sea la extensión, voy a retener, Pero voy a renombrarlo para pick I d on. Entonces Eso es lo que me voy de pie. Desea cargar dedo del pie como la imagen nombra a un modelo. Ese derecho de imagen es igual nombre de pick toe. De acuerdo, así que he hecho bastante fuera del trabajo, pero todavía no estamos del todo ahí. Todavía necesitamos dedo del pie manejar la carga de archivo. Entonces lo voy a dejar aquí para No, puedes probarlo. Owt. Um, lo que pasará es que podrás enviar el formulario el. Estarás viendo al nuevo Pickney, um, um, ir por encima si seleccionas un archivo para la subida, pero obviamente no está ocurriendo ninguna subida. Entonces cuando volvamos vamos vamos a terminar cómo vamos a terminar esa funcionalidad de subida 53. Setup Create Create Book - Parte 2: Oigan, chicos, bienvenidos de nuevo. La última vez que estuvimos aquí, estábamos sentados o creamos vista para nuestros libros en una de las partes clave fuera. Este fue el aplauso de archivo de habilitar para un libro sobre imágenes. Entonces tenemos que terminar eso en Lo primero que vamos a hacer es ir a nuestra solución. ¿ Qué de los contratos que iban a estar creando una nueva interfaz o un nuevo contrato para un nuevo servicio en este se va a llamar archivo de Lord. Está bien, así que archivo subir, vamos adelante y agregamos eso. Recuerda cambiar la interfaz en esta interfaz va a estar manejando grasa. Bueno, va a tener una función que se llama Tarea Pública Subir archivo, y se va a tener un parámetro en el formulario fuera archivo lista entrada cuatro Archivo en, bueno, bueno, otro departamento o para los nombres de pick. Recuerda que generamos el gran nombre dentro sobre el componente Blazer. Y así cuando llamamos disfunción, necesitamos pasar por encima de ese nombre. Entonces ahora necesitamos implementar esto por lo que vamos a seguir adelante y crear el concreto o la clase de implementación sobre en servicio, señor, hago clic en subir clase. Dije aplaudir, pero realmente debería haber estado en, pero la clase es subir archivos. Entonces vamos adelante y adoptamos en la subida de archivos se va a heredar de i file upload. A partir de aquí, vamos a introducir un nuevo tipo de propiedad, y este se va a llamar I Web host Environment. Entonces solo voy a subrayar y para abreviar, enfermo y seguir adelante e incluir eso e incluir cualquier binario faltante en, entonces esa son nuestras nuevas dependencias. Por supuesto, tenemos al constructor final en inicializado en consecuencia, después de haber hecho este fin de semana, seguir adelante e implementar la función. Bueno, puedes hacerlo. Yo lo estoy haciendo. No lo he hecho ya. Si te cableaste para hacerlo, entonces eres bueno para seguir entonces lo que vamos a hacer y me gusta corromper operaciones complejas en las capturas comerciales. Y entonces sólo estaremos escribiendo unas líneas fuera de la cancha. De hecho, unas pocas líneas fuera de cancha, nos vemos bastante parecidos del dedo del pie a lo que teníamos que hacer cuando queríamos subirlo al flujo de memoria . Entonces ahí es donde empezamos. Por lo que nuestros 1er 2 niveles Lanza declarando un objeto de flujo miembro en Ben, um, copiando ese dedo, la copia, los datos archivados al flujo de memoria. Y necesito conocer esto un fregadero. Muy bien, Así que las primeras 2 líneas, estamos viendo esas antes incluso estoy reutilizando la misma variable. Entonces no parece tan descabellada entonces voy a construir mi camino. Entonces la ruta en la que quiero que este archivo se guarde como dije, vamos a estar usando adentro fuera de nuestra carpeta raíz www. subidas son así que ese es el camino al que estoy apuntando. Tienes gente que tiene opiniones divergentes, pero una vez más sólo estamos manteniendo esto simple. Entonces tengo mi interpretación, mi signo de dólar y mis comillas encendidas. Entonces me fui a desplegar en el final de la puntuación, que es mi dependencia para el entorno de host Web en Estoy usando Web root path, ¿ verdad? Y luego voy a apuntar a la carpeta de subidas. Entonces esto va a decir dondequiera que se esté alojando la solución, desde donde se está alojando el sitio desde lo que es el camino a su derecha, y luego está buscando carpeta de cargas en, entonces vamos a estar pasando en nombre grueso. Entonces ese es el nombre real fuera del archivo para ser derechos seguros o el nombre real fuera. ¿ Qué? Queremos que este archivo se vea como en todo este camino en. Entonces después de eso, vamos a ver usando file stream on. Acabo de conseguir esto. FS es igual a un nuevo flujo de archivos. Terrible. Eso es correcto. Vamos a pasar el camino, Onda. Voy a ver amarrado ese fuego. Ya ves, file board dot crea en realidad significa que si el archivo está ahí ya lo sobrescribirá. Pero en última instancia creará un archivo. Y como estamos usando mercancía toe generar el nombre del padre, las posibilidades de tener una clase deberían ser muy delgadas. Entonces quiero decir m s como en la calle de la memoria y variable atracado dedo del pie derecho. Entonces, no, vamos a decir lo que haya en el arroyo miembro, quiero que sepas del pie derecho la calle del archivo en el objeto del arroyo de fuego como acabamos de ver, se encargará de ponerlo en el baño y crear su y luego eso es todo. Entonces si obtienes una excepción, puedes a través de nosotros podemos aplastar un programa. O como sea que quieras manejar la licencia excepcional a través Porque realmente quería estrellar el programa en el evento fuera de campo carga de archivos. Ya sabes, probablemente sean más agraciados con el manejarlo, pero para no implacablemente que así de vuelta en nuestro componente de creación, necesito una llamada. Por lo que antes de poder acceder al servicio, necesito agregarlo al inicio sobre CS. ¿ Verdad? Entonces este es un paso que siempre debo admitir, siempre me estoy olvidando. Entonces es una buena práctica que el dedo del pie tiene. ¿ Verdad? Por lo que acabamos de agregar un nuevo servicio. Entonces tenemos que dejar que toda la aplicación sepa que este servicio es ilegible para, um, inyección. Y así subir archivos. Por lo que volviendo al creador, necesito el dedo del pie presentarlo. Entonces esto Así salí a ver presento. ¿ A qué califiqué? Subir Derecho el. Entonces solo llamaré a este guión bajo. Archivo fuera Lord Derechos de mi dependencia para archivo Subir el, entonces no lo hagas Aquí o así esto es crear libro. Está en medio libro. Se debe manejar. Crear. Yo me dejo esa tarjeta, hijo de no. Está bien. Deshacerse de las líneas de rejilla una por una. Muy bien, entonces esta línea va a decir subrayado oscuros, subir archivo, subir archivo, subrayado subir archivo subir puntos. Un perfil en archivo de carga está esperando el archivo. Correcto. Entonces después de toda la emoción fuera conseguir el fuego, cargarlo en la corriente de memoria que hemos archivado aquí, ¿ verdad? Entonces eso es todo lo que estamos pasando así como el nombre de la imagen, que acabamos de construir. Se llama Nombre del pico. Está bien, déjame solo en Esto es un sincrónico necesito nuestro peso. Está bien. Entonces tal vez cómo podrías hacer esto un poco diferente es dedo del pie si la función de carga de archivos fallaba . Significa que podrías haberlo hecho como booleano, un toro de tareas. Y así si le prendió este fuego, entonces todo estaba bien. Después regresó. Es cierto si cogió unas caídas excepcionalmente devueltas y luego basado en el oh, salgan que se puede tomar una decisión en cuanto a para qué? Acerca de ti, le das a tu usuario o comienzas un cue visual dar a usar en ese punto. Está bien, así que creo que hicimos un poco fuera del trabajo. Yo sólo voy a seguir adelante y construir y asegurarme de que todo siga funcionando. Y tenemos éxito. Entonces tomemos esto para dar una vuelta, acuerdo? Entonces porque arrancaste las restricciones y fuiste después de iniciar sesión como entrada, y cuando voy a libros, estoy viendo todos fuera de los bollos que diariamente no llegaba a ver a alguien adecuado para seguir adelante y hacer clic, crear libro. Entonces aquí están nuestras formas, Así que sólo voy a poner algunos valores. Entonces este libro que experimento recuerdo que no tenemos ninguna validación en ejecución, por lo que necesitamos volver atrás y poner algo de validación en. Pero por ahora, solo trabajemos con lo que tenemos. Es un desplegable CR. Esto está funcionando para nuestros autores consiguiendo al autor, y luego elijo un archivo, y acabo de seleccionar uno de mi escritorio. Ahí vamos. Diga, vea la pequeña vista previa apareciendo y déjenos ver qué sucede cuando creamos libro. Vuelve derecho a la lista en ella está mostrando ese libro. Está bien, déjame ver qué pasa en mi opinión. Está bien, entonces estamos viendo el libro, nuestro ver el precio en. Vale, Necesitamos formatear algunas cosas aquí y allá en Si hago clic en autor, se repasa muestra con los detalles del autor y el hecho de que ese es su libro. Entonces todo se está juntando muy bien. Muy bien, entonces conseguimos crear nuestros libros. Y así lo último que quiero hacer No, sólo en algunas validaciones, aunque Justin señala que puede que tengas algunos problemas con la escritura de archivos, dependiendo de dónde estés escribiendo dedo del pie y el basado en el permiso que tengas. Está bien. Así que lo probé en una máquina que no era administrador o no tenía derecho de lectura dedo del pie de acceso o sin dedo derecho de acceso. Por lo que fue creando archivos en blanco. Entonces si estás recibiendo incendios en blanco, pueden ser tus permisos, pero aún puedes dejar caer su línea si estás teniendo dificultades con esto. Pero si estás en esta etapa, entonces estamos bien para seguir. Entonces lo último que necesitamos saber es comprobar nuestras notaciones de orbitador de validación para nuestro modelo. Está bien, así que en el modelo de libro agregaron estos datos políticos y yo, el título requería quiero decir, se requiere el hielo. O sea, el resumen se limite a no más de una de 10 50 palabras sobre, quiero decir, el autor que d requirió. Entonces la razón por la que hice el autor que d requería es que a pesar de que lo tengo, no lo sabe. Pero en pura, yo quería. Entonces si bien el FBI dice que no necesita un autor, voy a obligar al autor porque entonces no quiero ningún problema de mi lado. Entonces recuerda que estamos cerrando la brecha como el desarrollador llorando versus un desarrollador de pares. Entonces, por el lado del cliente, podemos inventar nuestras propias reglas para hacer cumplir nuestras propias y estrictas cualidades antes incluso de llegar a las reglas del FBI sobre sus cualidades. Entonces tenía el signo de interrogación aquí en el dentro de esa mediana crédula, lo significa que no tenía que seleccionar a un autor. Bueno, sólo me lo quité, y estoy viendo que más seleccionas a un autor cuando estás usando mi arriba. Está bien, así que eso es todo para las notaciones de teatro en el libro. También doblé de nuevo a mi componente de creación y me aseguro de añadir una sección para el verano. Por lo que todo se ve igual excepto en ninguna parte usando un área de texto de entrada. Por lo que sabemos tres hasta pone tú sabes el para. Tienen número de entrada. Tener texto de entrada, que es un cuadro de texto. No tiene en área política, que es la caja grande. Eso es casi un paseo. El tema. Ese sería nuestro resumen el entonces. Nos dieron los componentes personalizados archivo de entrada toe manejar nuestra carga de archivos. No, pensamos que eso se puso. No lo hagas. Puedes seguir adelante y probar otros escenarios, ya sabes, subir y en corte unquote archivo invitado probando las diferentes permutaciones que puedas. Sé que son huecos en la lógica, ¿verdad? No eso Si puedes detectar a unos pocos libres para compartirlos conmigo y podemos pasar por ellos juntos. 54. Libro de actualización de la configuración: Oigan, chicos, bienvenidos de nuevo en esta lección. Vamos a estar caminando por las operaciones de edición para nuestros libros. Entonces estaba tan emocionado que seguí adelante y empecé sin ti. Segunda pausa y quítate. Pero lo que ya hice fue crear mi edición. Las historias son componente compitiendo dentro de la carpeta de libros. Está bien, vamos. Entonces seguí adelante y le di su camino, que es slash libros slash edit slash. Bajo I d parámetro, pongo en la autorización para sólo reglas de administrador en. Después importé el repositorio de libros. Ofrezco repositorio o carga de archivos fuera del repositorio en el gestor de navegación. Andi. Tengo mi libro de edición de título, y pongo en esta regla horizontal en punto de ruptura y estoy listo para ir a buscar. Y Paul se está quitando eso, y luego cuando te pongas al día, puedes seguir con ahora. Yo quiero estar construyendo los discursos en una combinación fuera de cancha desde nuestra página de vista en nuestro crear pitch. Correcto. Por lo que agregué, borrar autores que lo divulguen. Por lo que tenemos editar lo siento, Web o editar página tomada de la página Crear así como la vista, Pete. Entonces solo voy dedo del pie pieza por pieza. Toma lo que yo quiera. Lo primero que quiero sería esto si las declaraciones recuerdan que en la vista comprobamos si se invitó el valor fuera del perímetro y mostramos un mensaje. Está bien, así que quiero eso. Entonces en realidad solo voy a derrumbar el dedo del pie Este colapso esto y voy a llevar todo entre la declaración if a ese primer abrazo abierto. Copia. Tráelo para editar Pegar en eso. Yo sólo voy a cerrar ese corsé rizado. Terminado en mi emoción. Creo que pude haber borrado mis bloques de corte y acabamos de poner en mi bloque de núcleo aquí. Muy bien, entonces tenemos nuestra comprobación para el parámetro, y estamos comprobando si el modelo está vacío más. Si ninguno de estos es cierto, entonces queremos renderizar el formulario en. Esta forma va a parecerse más o menos a Oh, se veía en nuestra creación, Pete. Entonces en realidad sólo voy a ir para allá y se puede ver que ya se derrumbó. El crear forma, algún ajuste para tomar prestado todo fuera de ese acorde, traerlo, y luego hacemos unos tuits menores, algunos empezando desde arriba y bajaré sistemáticamente. Por lo que algunos cambios que quiero hacer serían yo quiero usar la actualización manual o no en el crear . Entonces maneja bit. Tenemos todos nuestros campos son autores siendo hueso. Por lo que estas líneas rojas significan que necesitamos poner representación para ellas en la forma. ¿ Verdad? Entonces en términos fuera de nuestra imagen, tenemos una pequeña modificación que necesitamos para mí aquí. Volveremos a eso. Esto va a ser en lugar de crear libro, dirá, enviar cambios actuales y no se reservaron de nuevo a la lista en. Entonces pasamos a nuestras canchas son Cornel nos ayudará a aclarar algunas de esas líneas rojas sobre lo primero que queremos en nuestro código es sobre parámetro, ¿ verdad? Entonces al igual que hicimos en la sección de vista o en la página de vista tenemos o parámetro público I d string, vamos a cadena I d Lo sentimos, también tenemos el modelo, y tenemos eso en inicializado persiguiendo a alguien a pedir prestado todos aquellos de la página de vista en Tráelos a nuestras ediciones. Muy bien, vamos a estar haciendo algo extra dentro de la ONU inicializada. Estamos consiguiendo el modelo, um, el registro del modelo. Pero también necesitamos la lista fuera de autores, que yo no creé, ¿ verdad? Entonces en la ONU inicializar conseguiste al autor algunos desvinculando esto. Entonces, como se puede decir, no estoy de humor se van a re tipo llamada que tengo por todo el lugar ya escribe solo estoy hablando lo mejor de todas partes y traerlo Traedlo como necesitaba. Entonces ya ven, aquí en el bar, esta tierra fuera de cancha, no tenemos autores y obviamente necesito ser clara la variable. Pero si vuelvo a crear en mirada dentro fuera del bloque de cancha, entonces vería que tengo un montón fuera de variables que se parecen a variables que realmente sí necesito de cualquier manera en auto editor, Cualquiera los autores, sigo necesidad de realizar un seguimiento de mi archivo y necesidad de realizar un seguimiento del éxito, etcétera, etcétera. Tengo uno extra que voy a estar metiendo. Pero yo sólo copio estos de no en adelante. Y como tengo libro de nuevo, sólo voy a seguir adelante y meado, entonces. Lotes líneas ofrecidas desaparecerán porque no existen variables. Muy bien, así que tenemos las actualizaciones de manija de función. Entonces necesito implementar eso en la mano, aunque va a parecer muy similar al tipo de crear. ¿ En serio? Entonces sólo voy a volver a mi crear esto, así que sólo lo colapsé, Así que quiero pedir prestado eso, y voy a pasarlo y la edición. Y luego fui a cambiar el nombre manejar el Está bien. Por lo que un poco cambia el tiempo hecho dentro de la creación en. Por extensión, la edición estaría en la forma de esta declaración if. Entonces si intentas subir el archivo en base al trimestre que tuviste, probablemente hubieras conseguido o, bueno, si intentas presentarlo grabo sin subir, nuestro valor probablemente habría sido consiguiendo algunos no excepciones. Y eso es porque aquí tenemos un montón de operaciones de archivos que Randers dejan de ser ejecutados sin que haya un archivo presente. Por lo que no se puede quitar el nombre. No existe un padre, así que tengo que comprobar antes de la presentación. Si el archivo no se sabe encendido, entonces vamos adelante y partes fuera de los detalles, luego subirlo, luego realizamos el cambio al campo encendido. Después empujamos a la base de datos. Y si no hay archivo, bueno, bueno, sólo empujamos a la base de datos. No necesitamos realizar ninguna operación de archivo, así que me refiero a ese cambio a la operación de creación. Andi, cuando acabo de copiar eso a la operación de edición, Correcto. Por lo que manejar actualización se va a comprobar si hay un archivo sobre acto en consecuencia. Necesitamos una vuelta a la lista, así que sólo voy a conseguir el regreso a la lista. También en voy a necesitar manejar extensión de archivo porque son selección de incendios, señor. Porque sí te permito cambiar la imagen del libro en la edición. Entonces voy a tener que manejar eso parece entender. Quítate ambos estos también en su lugar dentro del bloque de cancha en la página de edición. Ahora, si vuelvo a bajar hasta la cima de la granja, lo veré, ¿de acuerdo? No hay líneas rojas, Así que empecemos de nuevo en bajar una dirección. Pequeños temas son matices. Sepan que estamos lidiando con la edición. Onda ni creada ni vista. Entonces el primer tema que yo que me salta. Y una vez más, el agricultor significa lo mismo va tenemos los mismos campos para los diferentes rubros, ¿no? Por lo que la imagen todo el camino aquí abajo nacieron archivo de entrada. Y en nuestra sección donde comprobamos si es un tipo inválido en pantalla, un mensaje de error si lo es. Y entonces decimos si hay algo en los datos tú, earl, earl, o recuerdas que se formó el euro Beetle porque cualquier archivo que se seleccionó fue Parson Tau Bay 64 luego puso en imagen Data Girl. Entonces conseguimos esa miniatura. Entonces el problema aquí en la edición es que este tribunal sólo muestra un expediente que ha sido seleccionado . Si soy algo de existente que ya tenga un archivo y no voy a cambiar el archivo, acuerdo? No hice nada para despedir la selección de archivo de mango. Entonces los datos de imagen que eres nunca cambiarían de no, que es inicialmente. Correcto. Entonces lo que quiero hacer es la imagen mostrada que ya está en la base de datos, la cual se financia imagen de punto modelo. Entonces sólo voy a copiar esta declaración si Bueno, sólo voy a decir otra cosa si está bien, déjame entrar en el siguiente carril en, entonces va a tener un cheque similar para ver eso. Por lo que quiero una prioridad para estar en el estilo que se selecciona recién a la derecha. Pero entonces, si no hay archivo recién seleccionado, entonces quiero comprobar si hay un archivo en la base de datos informes de modelo esa imagen. Entonces si quieres muchas imágenes, no nieve, son espacio en blanco. Entonces quiero al mismo tipo fuera de las criadas. Pero entonces esta vez el valor va a estar en el camino fuera. Sube barra barra en que va a ser imagen de inicio modelo. Muy bien, entonces tenemos modelo, no imagen siendo mostrada. Si no hay nueva imagen, no, no, Si hay una nueva imagen, necesitamos una forma de dedo del pie maneja eso en. Lo que quiero hacer es el camión si ha habido un cambio en la selección. Entonces cuando dije cambio en esta elección, no necesariamente quiero decir que seleccionaste una nueva imagen en este invierno. A mí me preocupa menos si seleccionas una nueva imagen de la que ya está ahí o cualquier otra cosa. Pero incluso si entraste, haces clic en el archivo seleccionar en que seleccionaste la misma imagen. En lo que a mí respecta, eso fue un cambio en la imagen. Entonces el comportamiento tiene que cambiar donde eso significa que cuando se somete si hubo un cambio, entonces necesito dedo del pie tomar todo el que había antes y poner en el nuevo. O si ahí si hiciste ese cambio donde te quitas la imagen para juntarme todos, necesito asegurarme de que eliminé la imagen del disco en adelante también del sistema de incendios. Entonces voy a introducir una nueva bandera aquí mismo que voy a llamar ¿Se cambia archivo? Voy a inicializar ese dedo del pie cae inicialmente. Entonces cuando haces una modificación al archivo o activas los eventos que dice's maneja selección de archivos, quiero mandar la verdad porque en lo que a mí respecta, me pasó el cambio. Entonces dentro de la selección de mango solo voy a decir es el cambio de archivo es igual a verdadero. Está bien, así que sepan que estamos rastreando el estado fuera de selección, al menos si se cambia, no lo son Si llega aquí el día, algo pasa. A mí una vez más no me importa si es No, no lo son. No, algo cambió. Entonces sí, algo cambió. Por lo que en el momento fuera manejando la actualización Necesitamos dedo del pie. Hacer algo diferente con uno. Si el archivo no es igual a Nolan la única manera si no sería igual al conocimiento si se seleccionara un nuevo archivo. Correcto. Entonces en este punto, necesito frío que se va a quitar y sólo voy a poner un comentario aquí. Eliminar la vieja imagen Onda subir la nueva escribe. También voy a introducir otro cheque para ver si nuestro más si este archivo cambió es cierto. Por lo que cambias el archivo. Un cambio de estado del luchador hizo algo para interactuar con los barcos de selección de archivos. No hay expediente presente en incendio es equivalente a saber ¿verdad? Entonces eso significa tu cadena algo Pero no hay fuego en el sistema. Entonces voy a tener que simplemente quitar el viejo cuadro encendido. También voy a tener que establecer la imagen de punto modelo para que sea igual dedo del pie nada Cadena que vacía porque no tiene sentido. Estoy haciendo referencia a una imagen que no existe en algún lugar para actualizarla, para decir que no hay imagen de referencia. Si se cambió el estado del archivo en el incendio es equivalencia y no. Por lo que estos dos bloques tienen lo mismo en común. Tenemos que quitar las fotos antiguas. Entonces vamos a entrar en nuestro archivo subir, contratar e implementar, y usted puede 3er y yo estoy llamando a este método vacío público. Eliminar archivo. Yo lo estoy haciendo como tablero porque no vamos a hacer nada es sincrónico ahí dentro. Por lo que no necesito ser una tarea. Simplemente voy a quitar el archivo y todo lo que necesito es string, pick name. ¿ Cuál es el nombre de la imagen que debería estar quitando? Entonces en la clase concreta, solo voy a seguir adelante e implementar la interfaz, conseguir que los nuevos métodos se detengan. Esta realmente va a ser nuestra otra simple Operación uno. Voy a construir una parte así que tal vez quieras buscar en conseguir un parklike estático hecho con los del FBI. Podemos buscar tener un camino estático para más de cinco Buehrle. De cualquier manera, construimos nuestro camino donde estamos obteniendo el mismo camino donde sabemos que todos los archivos están siendo almacenados. Está bien, y nos dan el nombre de pico, dedo del pie la chon. Entonces voy a decir si el archivo acoplado existe porque no voy a intentar eliminar algo que no existe. Entonces solo me interesa si existe, entonces solo quiero decir archivo que borra de esa ruta. Muy bien, Así que el archivo está ahí, luego elimínelo. Entonces eso es todo quitar archivo lo va a hacer por nosotros. Entonces de vuelta en nuestra edición, lo que voy a decir son las fotos de eliminación de virus. Entonces se ha ingresado un expediente, y yo soy yo no lo sé una vez más, no conozco nuestra cura. Si es la misma imagen que querían y reseleccionaron, estoy obteniendo la extensión, generando un nuevo yo d. viéndolos juntos para un nombre de imagen en que voy a ver en el archivo de partitura, subir muelles en, entonces se va a decir quitar archivo en. Voy de paso, Modelo atracado emite. Estoy quitando el archivo que ya está ahí que molesta almacenado dentro de la base de datos. Y luego después de haber quitado eso con éxito, entonces podemos seguir adelante y subir el nuevo. De igual forma, si se cambió el estado de incendio y no hay ningún archivo presente, entonces voy a seguir adelante y sólo eliminar el archivo y actualiza el valor a nada encendido. Entonces adelante y no crear, sino fuera de Biggs y luego aunque tome nuestros libros endpoints el modelo así como los dardos modelo . Yo d. Está bien. Está bien. Entonces, poco filete, esta cancha para un giros, entiende el inicio de clic. Muy bien, entonces en nuestra lista de libros, solo voy a seguir adelante y hacer clic en editar en uno de estos en. Vemos que tenemos nuestro folleto ha precargado nuestros datos con éxito. Voy a darle un precio sobre por un resumen también libro. Está bien, y luego vemos aquí tenemos nuestro adelanto. Entonces probemos cambiar este derecho de imagen, ¿ Entiendes? Para seguir adelante y elegir archivo. Está bien, vamos. También voy a cambiar el nombre de este libro. Alguien a quien llamar, es tal vez s b f S B A p I, def. Está bien. Algo que eso es algo pegadizo. Bloquear fuera de cancha como la imagen encendida. Seguiré adelante y presentaré los cambios. Entonces también voy a cambiar el también para que podamos ver tantos cambios como necesitemos. Y luego algo cambia y vemos a dónde estamos regresando o un nuevo libro con nuestro título cambia el nuevo precio. El autor cambió en todos los maravillosos cambios que hicimos. Si veo, vemos todo subiendo. Ahora bien, si has estado siguiendo todo lo que he estado haciendo hasta este punto, puede que se haya topado con un error porque cuando llegué a este punto y lo intenté inicialmente, tenía el dedo de la cita sin comillas llamar al FBI equipo on. Hágales saber que seguí todas las reglas que presentaron los datos sobre los datos del autor. No pasó por encima de manera adecuada en el SB efectivamente, y no sobrepase adecuadamente. Por lo que fingiendo ser el equipo, al menos entré en I D board y miré hacia atrás a mi libro bto para mi trabajo It on. Me di cuenta de que bien, mi I S b y Field realmente faltaba así como mi autor siente ideas de autor. Entonces si no pusiste esos dos los metes. Entonces el punto es que a medida que desarrolles sus sigan las reglas en el lado del cliente, incluso el FBI no está a punto de rascarse. Tendrás que acercarte para apoyar. O si estás haciendo ambos lados, entonces sabes que necesitas estar atentos a estos, que las cosas, los pequeños errores como este te harán creer que tu cliente tiene el problema cuando en realidad es el camino se instaló el FBI. Entonces solo estoy señalando eso todo, también, porque es una experiencia de aprendizaje para todos nosotros y queremos salir de esta preparada para cualquier pequeña situación. No obstante esos retos, vemos que nuestra operación de actualizaciones funcionó como se esperaba. Se quitaron los viejos archivos para cada subida y se puso en el nuevo archivo en Abatido el registro de base de datos en Cuando volvamos, veremos a hacer Elimina 55. Setup Delete: Oigan, chicos, estamos de vuelta. Y hoy estamos lidiando con la eliminación de un registro de libros. Entonces siento estar tan emocionado que no fui con chicos. Pero te voy a guiar a través de todo porque entonces te das cuenta de que al igual que lo hice por algunos de los otros componentes, todo lo que realmente fue copiar y pegar las mejores partes de oro de otra parte y luego empujarlas juntas como necesito ellos aquí. Por lo que empezamos dándole un camino a la página. Libros barra inclinada borrar las ideas de barra son parámetro o autor como atributos. Y luego nosotros en Jake. Nuestros servicios son del reporte del libro. El gestor de navegación, Andy s el repositorio de carga de archivos. Porque cuando eliminamos un registro de la base de datos, también quiero eliminar el archivo del servidor. No quiero quitar el registro y mantener bien el archivo. Sólo en lo peor se obtiene la inercia que alguna vez sucedió. Pero esa no debería ser la operación normal. Entonces mudarse por mi calle afuera dice: ¿ Estás seguro de que quieres eliminar este registro? Andi, tengo que H r y B son solo para el estilo, pero cuando vamos a las correcciones esenciales. Nos aseguramos de que se normalice cada pieza con los que tengo mi East éxito check on que viene de Bueno, it on tambien create. Muy bien, entonces. Tengo la comprobación para el parámetro los datos del modelo. Andi, la vista. Así que más o menos fui a ver esa maquinilla de afeitar y tomé todo este bloque de núcleo, cierto. Todo este bloque de corte es lo que utilicé adentro fuera de esta página de borrar porque estamos compartiendo todos los detalles fuera de registro que la persona es un boto borrar. Esperamos su confirmación justo en. Entonces al final todo eso, tengo dos botones, uno que dice borrar Bueno, uno que tiene un desrecortado que dice Borrar libro y el libro Texas el Lead, así como uno para volver a la lista en el bloque de la corte. Tenemos comprobación perimetral de guerra. Inicializamos nuestro modelo en Nacimos una bandera de éxito el, luego uninicializado. Obtenemos la versión indigente del valor perimetral encendido, luego la analizamos en remolque. El modelo que más tarde llena nuestra página como sabemos tengo mi operador de libros de leet, que más o menos sólo han causado la eliminación de archivo ciclo de archivo subir, quitar archivo pasado en el modelo punto Imagen en que eliminará la imagen de la superior descubrimiento vio en nuestro it on. Entonces tenemos nuestro éxito, que va del dedo a la espera de los resultados fuera de informe que cree el punto final de libros en el yo d fuera de registro en. Entonces si su éxito, entonces volvemos a la lista. Y entonces tengo mi batallita ist operar son función aquí siendo llamado por el botón así como este palo de éxito. Entonces sé que esa pasó bastante rápido. Pero como puedes ver, no está mucho fuera de trabajo porque, bueno, la mayoría es la interfaz sobre todo esto vino de la vista, ¿ verdad? Francamente, todo esto vino de lo que esto vino crea así como editar. Esto vino de los componentes Ver Onda. Bueno, los botones vienen de básicamente en todas partes de todos modos, Así que el rial única diferencia entre esta página y otras páginas que hemos hecho sería nuestra operación de eliminación, donde nos aseguramos de que estamos moviendo el archivo comprobar si es éxito en, entonces actuar en consecuencia. Entonces, expongamos éste para dar una vuelta. De acuerdo, Así que de vuelta en tu lista de libros, voy a seguir adelante y los Leeds, SB o SP contratan a alguien para que salga a la delantera semana pasada. Te mostramos los detalles. Está bien. Vi cómo entraron gradualmente. Entonces ese es el apagón que aguardan uno y dedo del pie. El hecho de que estemos pateando o haciendo algo diferente con el modelo está en blanco. Porque cuando no había datos, estamos viendo las pantallas de no datos y luego todo lo que desató quiere salir por ahí. Entonces eso es realmente genial. Cualquier hoyo vamos a seguir adelante y creer libro en. Vemos que funciona. Excelente. Usando esto solo para entender, para entrar en el explorador de soluciones y traer arriba las raíces W W Onda las óperas llenas. Y vemos aquí sólo tenemos una imagen. Por lo que tenemos dos libros con dos imágenes diferentes. Simplemente lo eliminamos una vez y tenemos una imagen. Por lo que eso significa que nuestro tribunal de remover efectivamente está funcionando. Entonces eso es todo para nuestra operación de eliminación. Si te encuentras con alguna dificultad, como siempre, como siempre, siéntete libre del dedo del pie, avísame. A continuación vamos a pasar por algunas correcciones esenciales y vamos a buscar implementar un mecanismo de notificación en nuestra aplicación a medida que pasamos por nuestras diferentes operaciones y tareas. 56. Correcciones y agregaciones esenciales del diseño: Oigan, chicos, bienvenidos de nuevo en este ajuste de video para revisar nuestra interfaz, ver si hay alguna modificación que necesitemos hacer en habitar revisar modificaciones que he hecho fuera de cámara así como implementar esta notificación biblioteca llamada brindis. Está bien, así que sólo para volver a los libros, lo que he hecho es ir por cada vista y me aseguré de que puse en esa regla horizontal así como esa ruptura en el agua neath un título estaba ahí. También agregué la columna de precio al índice sobre die indicar el precio aquí donde formateé la cadena para que se pareciera más a moneda escribe recuerda que es un decimal, razón por la que cuando pones $50 consiguiendo que alguien a puntos decimales o simplemente lo formateó por lo que parece 50 en luego fuera de curso, esa cosa anterior se extiende hasta la página de vista donde obtenemos los $50 Now. El motivo por el que esto está tan desalineado es que en? Si solo quiero inspeccionar elemento on show te cómo luce esto cuando verías que el precio está realmente apagado en la calle H. Remolcador en él está alineado en el centro, pero luego la alineación de las imágenes apagadas y tal vez por las dimensiones fuera de la imagen y esas cosas. Entonces me refiero a esas cosas, probablemente puedas trabajar viejo. No paso mucho tiempo tratando de arreglar eso y conseguir que se alinee. En qué te muestra por qué Se ve un poco desalineado para que si quieres, puedas poner tu esfuerzo en arreglar eso ahora de vuelta en la cancha, y solo estoy mostrando el discurso del índice. Aquí es donde hice ese formato de cadena, ¿verdad? Entonces dije string dot format on. Entonces estoy poniendo en forma de que quiero las variables de cero es un lugar mucho antes la variable en entonces la moneda de cuatro martinis, ¿ verdad? Por lo que una vez que sopla alcanzable por meses escritorio moneda on. Por eso lo vemos como una exhibición. Así que más o menos hice esto en todas partes que el precio se estaba imprimiendo de nuevo a la pantalla. Solía cadenas de formato de punto en la moneda sentada. Ahora sí dije que íbamos a instalar un mecanismo de notificación para blazer, así que vamos a meternos en él en algún lugar para ir a mi gestor de paquetes en. Voy a estar instalando este paquete llamado blazer dot toast. Entonces cuando llegue aquí, puedo seguir adelante e instalar su tostada de doc. de ventisca. Eso viene de los mismos tipos que nos dan la biblioteca para nuestro almacenamiento local. Por lo que tienen algunos secuelas de biblioteca realmente geniales, mecanografía blazer. ¿ Ves eso? Tienen modelo, tienen tipo de cabeza. Tienen algunas otras bibliotecas geniales que puedes explorar e implementar. En él se encuentra una biblioteca bien documentada. El siguiente paso después de conseguir el paquete es registrarlo en nuestra puesta en marcha que CS. Por lo que sólo bajamos para empezar que Sears Onda lo adjunte. También tiene la ventisca. Almacenamiento local están justo en ese brindis blazer. Y luego necesitamos incluir una biblioteca para que esto se reconozca. Y luego una vez que eso se haga, entonces necesitamos importar las bibliotecas en remolque. Nuestros vientres están arriba, por lo que volver a la solución experta irá a las importaciones en. Entonces solo voy a añadir otro estudio justo debajo del archivo de entrada blazer dot Toast on ventisca. Eso es brindis que servicios. Correcto. Entonces después de importar esos taburetes, está bien, siempre pueden simplemente pausar Si me muevo, me muevo rápido. Por lo que los balnearios no sabían qué es lo que se necesita para derribar. Entonces, después de que los hayamos importado, solo puedes seguir abrasando a medida que avanzas. Vamos a entrar en los diseños principales en entonces en las medias capas iban dedo del pie agregar nuevos componentes. Y sólo voy a poner eso en la parte superior, incluso por encima del menú del amor. Y yo lo llamo Blaze. Brindis errados. De acuerdo, así que eso es Ah, componente especializado que acabamos de importar para ser usado a través de nuestro blazer up. Está bien, entonces tenemos una cosa más que hacer. Es decir, hay bastantes pasos. Solo estoy asegurándome de que los pormenorizen sake y vean cómo se juntan todos. Entonces en el archivo host, voy a agregar una hoja de estilo. Por lo que la referencia la hoja de estilo estará en la partitura contenido slash blazer dot toast slash blazer, el dash toast dot CSS y eso es un eslabón lo. Está bien. Entonces solo agregamos que acabo de poner las amenazas en el booster porque sí hereda cosas del bootstrap en orden esas importan ahora, usar este servicio es relativamente fácil, así que voy a sacar una de la página. Es eso en las operaciones realizadas y vamos a intentarlo, crear. Alguien crea. Ponlo en el creador autor. Justo en. Entonces en el aquí, voy a ver inyectar. Brindo servicio causa servicio. Está bien, bueno, déjame mantener mi convención consistente. Y nosotros bajo el servicio de tostadas de los quemadores. Entonces nos estamos inyectando y luego apagando. ¿ Qué? No hace falta importar nada, porque ya hice las importaciones en el archivo de afeitar de inicio de importación. Por lo que una vez que tengamos nuestro servicio de tostadas, podemos saberlo. Llámalo siempre que queramos enviar una notificación. Entonces voy a hacer por dentro la parte de éxito para o creación de autor. Voy a poner que quiero muelles de servicio de tostadas, y luego quiero mostrar éxito. Mira eso para que pueda mostrar éxito en. Entonces le voy a dar un mensaje. Por lo que fui a ver autor creado éxito plenamente. Muy bien, así que hablamos de configurar nuestros componentes personalizados con mensajes de error. Entonces si es que quieres mostrar tal vez una herramienta ya que off mostrando este mensaje de error , si no éxito, entonces probablemente podrías ponerte si en eso y lo demás y decir servicio de tostadas que así que estoy seguro que tienen algo para eso. Por lo que tienes éxito en cuatro advertencia de error en Dwell arrojado. Obtengo tiendas es solo una primaria Andi Bueno en para sería como azul. Por lo que puede amables ofreciendo un paralelo entre las pistas. Aquí están los nombres en las clases que vienen de bootstrap, correcto. Alguien a rutinar ese show. Autor exitoso creado Andi. Yo sólo voy a probar esa. Entonces voy a hacer uno en cámara. Vamos a hacer uno juntos en, entonces quiero desafiarte. Dedo del pie. Hacer otros en otras partes de su cordón encendido. Voy a actualizar otras partes fuera del cable también. Muy bien, así que vamos a probar este viejo de mi lista de autores. Voy a crear autor bien, y tengo una nueva autora, Claudine Williams y sus biografías que es muy elocuente. Voy adelante y creo autor, y luego vemos nuestra notificación Autor de éxito creado con éxito. Entonces había encendido. Aquí hay una cosita que puede haberme perdido nuestro lo que me perdí. Necesito un punto de descanso entre el botón y la mesa. Entonces yo sólo voy a hacer eso. No, para eso es este video de correcciones esenciales, ¿ verdad? Entonces déjame simplemente tirar de eso rápidamente. ¿ Todo bien? Así que acabo de poner eso. Acabo de poner el punto de ruptura debajo de la pero en la experiencia final, ese es un hombre de piensa. No voy a pasar tiempo haciendo eso. Pero cuando el foco en esta gira, por lo que se puede establecer este mensaje. Pero entonces si digo coma, también podemos darle un encabezamiento. Entonces, ¿viste eso? Dijo éxito, ¿verdad? En realidad podemos darle un encabezado personalizado si queremos que nuestro set esté en blanco. Por lo que la palabra sucesores y venga la notificación en sí surgirá para decir que esto se hizo con éxito. Entonces lo que te puedo desafiar a que hagas en este punto, solo tienes que pasar por las diferentes operaciones y poner en las notificaciones apropiadas usando los colores de prompt apropiados. Recuerda que fuller sugiere cosas diferentes o éxitos. Advertencia verde significa que algo podría haber salido mal. O podría ser simplemente el esquema de color con el que estás trabajando. Andi, puedes divertirte un poco con estas notificaciones paso y actualizo las mías propias. Está bien. Por lo que otras modificaciones que hice dentro de la sección de vista incluirían que puse un botón por pozo para alrededor en cuatro operaciones diferentes en cualquier botón de borrar importante y arriba. Ya tenemos la espalda a este botón. Cambio la clase fuera de la línea de advertencia y el contorno de peligro, junto con algunos iconos el lápiz y el círculo exportan el delete on die también se aseguraron de incluir los eventos de click donde navegarán a la página respectiva con el i d. Volviendo de nuestros puntos de vista. Eso hice en ambos autores en libros. Andi los configura para que puedas pasar, configura cualquier brindis las notificaciones que quieras. Se puede, ya sabes, abeto de la interfaz un poco encendido. Si bien te he dado una idea, me interesa ver qué se te ocurrió Onda en ese momento fuera del día. Espero que termines con una bonita interfaz. Por lo que en el siguiente video, solo revisaremos todo lo que hemos hecho en esta sección y luego revisaremos nuestros cambios para conseguir para 57. Revisar y añadir cambios a GitHub: ustedes chicos. Bienvenido de nuevo. Este es nuestro video de opinión de clientes en dime justo dentro de ti. No des un resumen de alto nivel de lo que hicimos en todo este 61 para libros. Entonces se trata de libros pero detalles volviendo a autor para estar con algunas cosas e incluso de vuelta al FBI porque había brechas desde antes dónde arreglarlas. Por lo que en el FBI, tuvimos que actualizar nuestro libro GTO para asegurarnos de que teníamos sentir para apoyar ser transmisión a través de la tubería en nuestra espalda. En nuestra interfaz. Ya sabes, tú ¿Por qué hicimos bastantes cosas? Actualizamos nuestro modelo de libro toe, tenemos algunas anotaciones de datos para asegurarnos de que el formulario recoja los datos correctos. En consecuencia, montamos todos nuestros componentes de multitud para nuestros libros. Andi, siempre es tener que arreglar algunas cosas en la sección de autores. También, también nos pasaron, y creamos algunos nuevos servicios con la forma del repositorio de libros así como un archivo. Sube su postura. Entonces, no, estamos manejando archivos en el sistema una vez más. Si tienes dificultad con esto, podrías tener algún tema de permisos en la máquina que estás usando para que puedas buscar dedo del pie , tener eso rectificado o, ya sabes, contactarme si algo. Pero hicimos un poco fuera de trabajo en esta sección. Y no, solo queremos checar en nuestra cancha para asegurarnos de que sea agradable y seguro. Entonces como de costumbre, solo hacemos click derecho, vamos a comprometernos. Después ponemos en nuestro mensaje para asegurarnos de que recordamos todo lo que ya usamos. Ten una idea. Adelante y comprometerse todo y ver en eso es todo para este seis on. 58. Introducción a Blazor WebAssembly: Oigan, chicos, bienvenidos de nuevo. Por lo que vamos a continuar en nuestro viaje de desarrollo. Ya hemos mirado cómo creamos nuestra Web. AP I usando dot net core 3.1. Hemos mirado cómo podemos ir ambos creando un blazer arriba entonces. No, vamos a ver crear un blazer con montaje arriba. Entonces, hasta ahora hemos estado usando Blazer Server en No, vamos a mirar Blazer con ensamble. No, Justin señala que hay algunas diferencias entre la plantilla de ensamblado Web en plantilla de servidor Bill Blazer. Entonces en lugar de tratar de convertir de uno a otro, lo que voy a hacer es crear ah nuevo proyecto en ese entonces. Ya hemos escrito mucho fuera de la cancha. Mucha cancha en realidad es muy transferible entre las dos plantillas, Pero entonces todavía vamos a echar un vistazo en ven a apreciar algunos fuera de las diferencias en matices entre las dos. Entonces con eso dicho, empecemos. Entonces voy a volver a estudio visual y luego voy a seguir adelante y crear un nuevo proyecto . Por lo que ya tengo dos proyectos en nuestra solución. Ya sea el proyecto del FBI y nosotros tenemos nuestra librería. Tú y proyecto, que es nuestro blazer server up. Alguien que cree un blazer Ensamblaje Web, y luego sólo veremos todo el fin de semana. Tú transfieres el núcleo entre, así que voy a seguir adelante. Grabar la solución. Haga clic en Nuevo proyecto. Selecciona la plantilla blazer up en. Entonces te voy a dar el nombre Librería. Mantenlo consistente. Dash librería. Tú me puntos w a s m tan tonto A S M. Ese es el acrónimo significa Ensamblaje web o es ah, ya sabes, corto. Bueno viendo ensamblado Web encendido, entonces seguiré adelante y crearé No. Cuando estábamos en este punto antes en las lecciones donde la Asamblea estaba en realidad en vista previa. Entonces no, está en la versión completa. Yo quiero mostrarlo en este curso. lo que finalmente se ha estrenado, y no está lista la producción, y entonces la vamos a estar usando para nuestra aplicación. No, En este punto, quiero tomarme el tiempo dedo del pie señalar algunas cosas. Uno cuando elegimos Blazer, Ensamblaje web arriba, obtenemos algunas opciones diferentes. Y lo que teníamos cuando elegimos Blazer servidor arriba. Por lo que en re click que tienen montaje arriba. Sabemos que tenemos dos opciones. Podemos convertirla en una aplicación Web progresiva así como una aplicación sp dot net core horses ? No, la relevancia fuera de esto es que el ensamblado Web es en realidad una pieza fuera del borde que se ejecuta directamente en los boroughs. Er así cuando construyes una aplicación que se basa en ensamblado Web, el Broza realmente cargará todo fuera de los contenidos Todo fuera del recurso se necesita para esto se ejecute, que esto se ejecute,todo se cargará en el navegador y esto arriba se ejecutará desde el del bro. Er, está bien. Un servidor arriba, sin embargo, realmente necesita ser desplegado en un servidor como Internet Information Services. I s r cualquier otro servidor barrido compatible, igual que cualquier otro sitio web. Por lo que una vez más, el blaze y el ensamblado Web up en realidad se ejecutarán directamente desde el navegador. Ahora, si elegimos la opción hospedada sp dot net core, lo que obtendremos es que tres proyectos adicionales obtendrán un cliente, un proyecto, un proyecto de servidor así como una biblioteca compartida. Ahora, la biblioteca compartida servirá como un terreno medio entre el servidor y los reclamos. Ya sabes, en las clases o clases modelo. Eso sería, ya sabes, común entre los dos tipo de ir en lo compartido. Lo que pasa es que el cliente se conectará al servidor a través de una P I llama por lo que el servidor arriba podría ser capaz de manejar lógica empresarial compleja en ¿Sabes, si quieres hablar con la base de datos directamente causa puedes construir una corriente completa de Baser de lo que probablemente querrías ir con él el punto net core alojado para que el servidor hiciera exactamente lo que hemos estado haciendo en nuestro servidor en ese entonces. El cliente solo usa una causa de par para hablar con el servidor hacia arriba. No, sé que eso podría ser difícil de visualizar. Probablemente pueda experimentar, y se puede crear uno que esté alojado en el núcleo en uno que no sea para cerrar. Estará yendo con uno que no sea núcleo alojado porque ya tenemos en un p I. Así que no necesito dedo del pie. Tener otro servidor arriba Taconic al FBI para el cliente después de entonces conectarse al servidor arriba derecha, Así que no se situacional e. Usted puede elegir uno, pero no los otros. en esta situación y no querrá elegir una opción hospedada núcleo. No, la aplicación Web progresiva una vez que usted piensa que incluirá ciertas bibliotecas que mucho esta aplicación para ser realmente como una aplicación independiente. Por lo que independiente significa que en realidad no se puede saber la aplicación en su dispositivo con su móvil o ventanas se ve verbalmente, y se ejecutará directamente desde su máquina. También apoyará en nuestro vuelo más ahora, con todo eso dicho, voy a elegir Asamblea Web, elegir aplicación Web progresiva. Andi, no voy a elegir la autenticación ni nada más, pero voy a seguir adelante y hacer clic crea. Está bien, así que sepan que hemos creado esta aplicación. Echemos un vistazo a lo que tenemos aquí, así que sólo voy a ampliar la aplicación del servidor. Onda. Simplemente compararemos qué archivos conseguimos en cualquiera de las plantillas. Muy bien, así que sí tenemos nuestras carpetas de ruta www en común. Pero entonces, si echas un vistazo, ves que lo que obtendría es un tipo de CSS diferente en vivo. Agregamos los subidos para nuestra aplicación y obtenemos un icono de cinco. No escucho que tienes viene en algunos datos de muestra porque fuera de la muestra, eso es una cosa de plantilla. Entonces eso realmente no es necesario. Tenemos. RCs está más lleno en. Entonces tenemos alguna adición fuera que no están presentes aquí como el archivo de índice. Por lo que este archivo índice realmente reemplaza al archivo. Muy bien, Así que el servidor viene con el archivo host. Nuestro ensamble web viene con el archivo índice. Está bien, en ese entonces, tenemos un manifiesto de que Jason, esto es como un padrón para todos fuera de los detalles fuera de la web. Ensamblaje arriba. Entonces el nombre fuera de la aplicación en ¿Conoces algún otro dato estático donde los iconos son etcétera? Todas esas cosas van por dentro del manifiesto. Comienza Jason. Y luego tenemos al trabajador de servicio Js, que es más o menos escolaridad para apoyar esa opción de web up progresiva. Muy bien, entonces tenemos páginas, los discursos permanecen bastante animados. El mismo. Excepto que una vez más no tenemos ese host dot CS archivo html. Entonces cuando miramos en compartido, vemos las mismas cosas en las importaciones y arriba no suben sus Todos esos siguen siendo prácticamente iguales. Pero luego note que tenemos programa, no CS en el servidor encendido. Entonces tenemos arranque no CS que viene por defecto y estándar en el ensamblado Web. No viene con dos expedientes Ahora. Dicho esto, en realidad se puede extender este dedo del pie, tener la misma estructura que el programa docs y comenzó porque el programa que lo ve en realidad ejecuta esta función, que inicializar es el inicio de ver a las personas Gran Bretaña que asciende a dos. De lo contrario, cuando estás registrando servicios, tienes que decir builder dot services, que en lo nuevo en tu escuela pobre transitorio en la sintaxis no se ve demasiado diferente. Entonces, en realidad, todas estas cosas que teníamos que hacer referencia por dentro de nuestro blazer original arriba necesitaremos botearlos hacia nuestro ensamblado Web cuando las necesitemos. Entonces sepan que he creado un proyecto. Vamos a echar un vistazo rápido a su entender para establecerlo como el inicio del proyecto en, Entonces ejecute. Está bien, Así que cuando está en marcha, ve que es literalmente el mismo diseño. Entonces acabamos de pasar por el servidor. Literalmente sólo vamos a estar transfiriendo ese conocimiento hacia el lado de ensamblado Web . Tenemos el hogar Página de muestra contador Web Cualquier palabra De la misma manera. Y, ya sabes, cambiar datos. Entonces aquí verás el ejemplo fuera de la A p que llamo, estamos en Fetch data me. Sólo date prisa y ve ahí. Veremos que la página. Se ve igual. Excepto éste. Están usando una biblioteca de cliente http diferente a la que usamos. Entonces vamos a ser re factoring. Por lo que la cancha, porque usamos I. Http fábrica cliente. Tienen una sencilla biblioteca de cliente http. Andi. Entonces vamos a estar cambiando con un poco de frío, pero eso es además del punto ahora mismo. Um, inicializar hace una A p. llamo para que no se llame justo en. Entonces este se llama pregunta ¿En qué quieres que analice al Jason? Entonces es disfrazado. Http. Obtén del contenido Jason que eres un barco para recuperar. Analizarlo en remolque. Honore, fuera de tipo pronósticos meteorológicos sobre el pronóstico SYRIZA nos clasificó Aguanta en el control y Oh, lo siento. Está justo aquí. Mi Pero está bien, así que hay mucho trabajo fuera. Entonces esa es sólo la clase. Eso es todo lo que es. Andi. Por lo que es una matriz de objetos fuera de tipo con trabajadores que provienen de datos de muestra slash punto meteorológico Jason. Entonces si recuerdas en la carpeta Www Route ahí mismo, tenemos algún corte policial si Jason o no. Entonces eso es todo lo que quise decir. Fue sólo con fines de muestra, pero el principio sigue siendo el mismo. Entonces cuando estamos cuando somos un barco para recuperar algo de nuestro a p yo lo que vamos a estar haciendo, estás viendo llegar de Jason Issing, analizando en lo que sea con sus autores. Son los libros en Si es una lista coronaria en básicamente poner en la U. R L cuatro el A p I, que ya tenemos en nuestro archivo en puntos, son Así que estaremos viendo cómo podemos convertir del cable de fábrica I http cliente a este uno. Vale la pena mencionar que acabamos de detener esto, que en nuestro programa, no CSU veríamos que esto que añadieron la biblioteca CTB dedo del pie la inversión del contenedor de control. Correcto. Entonces, en otras palabras, sólo podemos inyectarlo la dependencia. Http, cliente en él ya va a amortizar nuestra dirección base, pero no necesitamos cambiar tanto. Nosotros sólo lo podemos decir, que eres un querido de puntar del pie y así sucesivamente. Pero esto es altamente configurable a este nivel. De acuerdo, así que ahora que hemos creado nuestro cliente arriba y vemos que es realmente muy similar a lo hemos estado haciendo para saber, lo siguiente que vamos a hacer es empezar a configurar sobre auténtico tu hijo en autorización para nuestra solicitud. 59. Port Blazor Server para Blazor WebAssembly: ustedes chicos. Bienvenido de nuevo. Por lo que tengo sobre en pantalla mi estudio visual en los dos proyectos la librería tú yo proyecto servidor así como librería tú I Proyecto de montaje web. Entonces lo que vamos a empezar a hacer es transferir algunas fuera de la cancha sobre algunas de las cosas que vamos a tener para estar atentos a las bibliotecas faltantes entre las dos. Porque, bueno, tenemos un montón de paquetes aquí en nuestro servidor, pero aún no los tenemos en el ensamblado web. Por lo que vamos a tener que asegurarnos de que obtengamos esos así como los espacios de nombres. Porque yo realmente sólo fui a copiar y pegar mucho de lo que ya tenemos. No voy a pasar tiempo reescribiendo ninguna clase ni nada, pero vamos a tener que asegurarnos de que actualicemos los espacios de nombres para que funcionen las referencias . Está bien, así que empecemos. ¿ Voy a conseguir qué? Yo sólo voy a empezar con los modelos, así que sólo voy a tomar el modelo smolder, Andi. Bueno, en realidad, solo me voy a dar el dedo como una operación a granel, así que voy a tomar la carpeta de contratos Porque tenemos el repositorio de autenticación I en la carpeta de contratos tenemos la carpeta de modelos encendida. ¿ Tenemos qué? Tenemos páginas con usuarios. Entonces solo estoy aquí marcando lo que necesito. Necesito una estática, ¿verdad? No. Y necesito servicio. Ah, y necesitamos proveedores. Muy bien, Así que literalmente voy a estar copiando todas estas cosas que probablemente la imagina para detener e todo. Y luego solo pasamos algún tiempo re factorizando juntos. Entonces déjame sólo hacer eso. Por lo que entiendo la retención en el control de clics contratos modelos páginas servicio del proveedor s estática en. Bueno, supongo que podemos tomar compartido porque tenemos el mensaje de error y el mensaje de carga. También tenemos el menú de knave. Por lo que literalmente, todo apagado, estas cosas se pueden poner directamente en el ensamble web. ¿ Todo bien? Y acabamos de pasar ah, pocos siempre construyendo estos viejos. Entonces estamos realmente familiarizados con lo que hay en ellos, verdad? Entonces solo voy a copiar el dedo del pie, solo controla y haz clic en cada uno, luego copia y luego baja al proyecto de ensamblado Web. Correcto. Haga clic en click a destajo. Y luego me va a preguntar si estoy seguro de que quiero anular cuando decir que sí. Porque lo que sea que haya en las páginas originales los usuarios, los autores de libros, todas esas cosas que sí quiero anular a alguien para decir que sí sobre vivir, digamos, aplicarlo todos los artículos y decir que sí. No. Cuando haga una compilación, voy a estar obteniendo mucho de errores una vez más porque esos nombres espacios necesitan ser reducidos. No tenemos mucho fuera del fuego referencias o referencias bibliotecarias para nuestro proyecto de ensamble Web . Antes de hacer algo, sin embargo, lo primero que quiero hacer es eliminar este archivo host porque este archivo de caballo en realidad da problemas, ¿ entiendes? Toe, adelante y quítalo del proyecto de montaje web. Haga clic. OK, Andi, algunos errores. Invierno nosotros probablemente no veas en. Después el archivo de importaciones. Bueno, yo querría Bueno, puedo dejar eso hasta que lo haga caso por caso. Entonces, no, voy a pasar algún tiempo limpiando las referencias. Entonces vayamos a contratos y luego lo veas Misma librería. Tú ¿Por qué? Pero eso necesito poner en pensamientos W A s m no contratos bien. Entonces en esa nota, probablemente pueda simplemente ir a buscar donde fuimos a buscar todo. Esa es su librería, ¿ no? Yo sólo a la derecha. Entonces lo voy a reemplazar por librerías. ¿ Tú? ¿ Por qué? rastrojo oscuro. Asem. Por lo que esta sería una forma agradable, rápida de simplemente disimular limpiar estas referencias. Basta con quitar éste. Eso lo acabo de hacer. Yo quería hacer bloque. Muy bien, aan den. Solución no completa. Pero los proyectos actuales están en proyecto siendo el proyecto de ensamblado Web on Do usted puede fuera encontrar su lugar todo tal vez. O si quieres ser más cuidadoso, Kandarr coloca la siguiente parte del lugar de la historia. Aw, Click. Sí. 37 ocurrencias reemplazadas el. Entonces hacer una construcción en mi compilación dio 108 errores. Muy bien, así que tengo bastantes errores, pero mucho fuera de ellos realmente están haciendo referencia como bibliotecas faltantes. Está bien, así que ven aquí no tengo los blazers. Claverie, el jade del té y ciertas bibliotecas apenas faltan. Está bien, Así que no te preocupes. Lo que voy a hacer es solo importante esas bibliotecas, así que vamos a hacer clic derecho en el proyecto mi Nisshin conseguir paquetes y luego voy a pasar e instalar cualquier cosa que me imagino que falta. Entonces sé que me falta este Jason. Nuevos mutantes fuera de ese hijo J alguien que no sepa eso. Es decir, puedes seguir a mi líder. Simplemente puedes abrirte. Se obtiene del proyecto de servidor en, entonces ya sabes, lo que ya está en comenzó nosotros adelante y bro e instalarlo también. Entonces sé que tuvimos brindis de ventisca, alguna disciplina para conseguir ese en el almacén local de Blizzard. Entonces consigue que esa obtenga archivo de entrada. Estoy obteniendo autorización de componentes de núcleo neto de SB. Por lo que eso soporta autenticación y autorización para blazer up. Tienes que sacar ese fuera de curso que no podemos olvidar sobre JWT Library. Entonces justo eso efectivamente, capacidad. Y estamos recibiendo el 1er 1 y luego después de conseguir esas bibliotecas que construyen sobre nuestros menos errores. Pero mucha oferta Francine's sigue faltando, así que necesito asegurarme de que tengo las importaciones de tarjetas. Entonces no mencioné antes las importaciones, y vamos a ir allá y ponérselas. Voy a conseguir todos estos pequeñitos aquí. El archivo de entrada un brindis, Onda y , ya sabes, implementarlos en los proyectos y luego hacer otro build on. Acabo de corregir a zonas aquí por culpa de mi amigo y sustituí la historia del libro. Por qué la referencia se duplicó. Entonces acabo de cambiar a todos los que hablan esas referencias. Y luego cuando echo un vistazo a algunos de los otros errores, están diciendo que no pueden encontrar, como, yo autor repositorio. Entonces eso significa que necesito toe ad hizo una referencia global al contrato, así que solo duplicaré esta línea en DSI. Yo quiero, uh, nuestros amigos de los contratos construyen, y entonces eso son aún menos errores. Ahí vamos. Se viene muy bien. No, se está quejando de la bandera de autorización. Por lo que los atributos autorizados. Por lo que necesitamos incluir una biblioteca para eso. Andi volviendo al servidor importa biblioteca que o iniciar los proyectos de servidor. Importaciones Archivo completo. Perdón, la biblioteca para la autorización serían estos a algún distante Para copiarlos Andi, volver a mi nuevo archivo de importaciones de ensamblado Web el. Yo sólo los puse en la parte superior justo de la misma manera. Y luego cuando hago otra compilación, estoy ni siquiera menos errores, aunque se está quejando de que no sabe qué es el autor. Por lo que autor estaría en las modelos. Entonces, una vez más, somos los parados sobre las referencias. ¿ Verdad? Por lo que aquí tenemos un modelos y contratos estáticos compartidos. Solo queremos asegurarnos de que estamos haciendo lo mismo aquí. Entonces déjame solo duplicar esto y conseguir los modelos. Está bien. En el quiosco, errores de construcción de Maduro desaparecen. Entonces ves que estos no son errores que son avena. Landy Shore. Ya sabes, fuera de lo común no puedes encontrar en puntos. Ya sabes, endpoints está en las carpetas estáticas de ahí va a haber preferencia, la estática. Y entonces esa era ya va a desaparecer. Algunos fuera de ellos lo hicieron. Pero está bien. Sí. ¿ Ves a dónde viene? No muy bien. Ahora, algunas épocas no van a desaparecer. El motivo de eso es que el modelo de hospedaje dicta ciertas cosas sobre ciertas cosas. Sí, Canton suceden en nuestra asamblea Web, arriba de la forma en que sucedieron en el saque arriba. No, correcto. No, estoy en el servicio de subida de archivos. Andi, si recuerdas, lo que teníamos que hacer era conseguir el entorno de hosting, es decir, el servidor arriba donde sea que se hospedara. Enciende ese entorno, luego encuentra la ruta raíz Web y busca una prosa más completa. Ahora el ensamblado Web up no va a estar en un servidor va a estar en la máquina del cliente , lo que significa que va a estar funcionando en su máquina y mi en máquina individualmente. No hay servidor para que hable para subir un archivo. Entonces vamos a tener que o bien excluir la función de carga de archivos del ensamblado Web porque realmente no es práctico. O voy a extender la A P I que vamos a,ya sabes, ya sabes, pretender recordar que la A p. A. fue desarrollada por otra persona es 1/3 party api pero, ya sabes, teóricamente hablando. Pero entonces lo vamos a extender para decir, OK, chicos saben que puedes subir tu ayuno directamente. Entonces ese es uno de los inconvenientes son algunos de los dropbox con ensamblados Web que ejecuta en la máquina del cliente. Por lo que ciertas cosas simplemente no son posibles, como manejar una carga de archivos al guardarla en un espacio accesible a nivel mundial. De acuerdo, entonces lo que voy a hacer ahora mismo es sólo comentar toda esta votación de clase para que no tengamos ningún error. Ambas cargas de archivos son, ya sabes, referencias faltantes aquí en. Voy a matar a esta referencia para quitar la flecha. Entonces me basaría en. Entonces estoy hecho a ocho errores. Entonces espero que no se identifiquen ocho errores como yo. Sé lo que tienen que ver estos ocho Arizona y tienen que ver con la biblioteca de planos A C T t. Está bien, entonces esta biblioteca no lo hace del todo Dónde están todos estos ensamblado Web tiene la biblioteca cliente HDTV . Um, pero entonces no se calla. Tener o necesitar la fábrica del cliente i sgtp. Probablemente podría haberlo estado haciéndolo de esta manera en el servidor en ambos. Oye, no queríamos en el servidor para arriba. Lo vamos a estar haciendo de otra manera en la web, ensamblando. Entonces con esos ocho errores que tengo, ¿verdad? No. ¿ Son estos errores que tengo un brillante saber sobre el factor cliente http cuándo dejarlos ? Lo último que voy a hacer, sin embargo, es transferir todo fuera del marcador para las referencias a todos los servicios. ¿ Verdad? Para que nuestro pozo, no necesitamos maquinilla de afeitar lateral de servicio. Definitivamente. No te hagas esa pero sí necesitamos el almacenamiento de blazer y todos los demás. No necesitamos el cliente at http en DSO. Entonces vamos a ser un poco quisquillosos con lo que estamos copiando aquí. Entonces necesito Ellos son Frances al servicio para el servicio local Blazer y brindar por él con una copia. Aquellos del sobresaliente programa Relenza. Y luego quiero convertirlos a las nuevas charlas estudiantiles. Entonces eso es constructor atracado servicios con un mayúscula s on Haz lo mismo aquí, constructor de puntos servicios con un mayúscula s Estamos obteniendo líneas rojas porque necesitamos o usando declaraciones de puntos de control onder t La sugerencia que obtenemos incluye las referencias en entonces, ¿qué más? Haciéndolo desde el inicio. Necesito todos estos, correcto, porque todos estos son servicios que tenemos. Bueno, el proveedor estatal del FBI, tenemos las autenticaciones. Proporcionan conscientes del manejador de tokens JWT y nuestros servicios internos que creamos a alguien para justo en absoluto fuera de esos. Muy bien en. Yo sólo voy a hacer Ah, rápido, encontrar y reemplazar. ¿ Puedo dejarme simplemente utilizable? Entonces no, contamos con servicios de punto constructor. Yo solo estoy reemplazando dondequiera que teníamos servicios con servicios de pensamiento de constructor en, luego Solo incluye todas las referencias faltantes en. Después de hacer eso, subir archivos está dando un error porque en realidad comentó todo en esa clase. Entonces no cree que esto comprenda entrar en esa línea más adelante, podemos lidiar con esas balas ahora mismo, las prioridades en reducir estas flechas y asegurarnos de que todo se alinee aquí. Está bien, entonces si hago otra compilación, sólo debería ver los errores que conozco. Ahí vamos. Entonces, con eso, voy a dejar todo como está. Y luego cuando volvamos, lo que vamos a hacer es re factor o repositorio basado en cómo utiliza los clientes http. 60. Modificar el código para Blazor WebAssembly: Oigan, chicos, bienvenidos de nuevo. Por lo que en ninguna parte se fue a re factoring entero utilizado el cliente http. Pero antes de hacer eso, lo que quiero sumergirme comer es entero. Probablemente verías muchos ejemplos escribiendo acorde con el tema para ser clientes. Entonces si vuelvo a buscar datos, vas a ver un ejemplo en vivo de lo que estoy hablando. Nosotros inyectamos clientes http, le damos un nombre fuera de curso, entonces en realidad puedes hacer la llamada del FBI desde aquí mismo dentro de los componentes. ¿ Verdad? Así que solo haces la llamada del FBI ahí mismo en él te devolverá el que sea en tu bien para ir mientras lo hicimos. No obstante, desde incluso en nuestro servidor hacia arriba fue que no hicimos la causa del FBI dentro del componente. En cambio, lo rompimos repositorio abierto del dedo del pie. Patrón tipo apagado en. Tenemos un póster de baster que maneja todo fuera hablando por nosotros. Entonces lo hicimos fue inyectar el repositorio apropiado se sirven. Entonces si miro el índice para autores estaban llamando al autor la gente aquí en estamos usando el reporte del autor suficiente o Theriot, conseguir operación. No. Si quisiera llamar al punto a p i n directamente en el componente. Lo que haría es algo así como inyectar, clientes http le dan un nombre y ya sabes, me gusta ponerme el cliente cuadrado en. Entonces fácilmente podría haber dicho modelo es igual a esperar en la puntuación los clientes se oscurece, entonces subrayado Klein me da todas estas opciones. Entonces creo que lo que usamos es enviar un fregadero ahora mismo en nuestro repositorio basado, cada llamada que hacemos, simplemente agregamos al oso hablando. Entonces sí ascendemos un fregadero. Pero entonces habríamos representado la parada de solicitud aquí, puesto en la URL y todo. Entonces veamos el teléfono get, Sean, específicamente. Correcto. Entonces aquí en el get construimos una solicitud que sabes que es yo obtengo solicitudes que esa chica , luego creamos el cliente on. Después agregamos la cerveza hablando, y luego hacemos el enviar un fregadero, y luego obtenemos la respuesta, y luego d serializamos el contenido en la lista fuera del tipo que queramos. Entonces ya ves, todo eso está como condensado en un FBI llamado lo único que no pasa en lo que estoy a punto de mostrarles es la adición de la cerveza hablando. Está bien, Así que podría tener igual de fácilmente dicho cliente se pone de Jason relajando. Entonces dile qué es exactamente lo que estoy esperando. Que hubiera sido una lista fuera del ciclo de autor dijo que enumeré fuera tipo autor. Entonces la derecha ahí va a manejar la d serializando fuera del Jason para mí en. Entonces, después de hacer eso, me limitaría a ver la URL, que sabemos es puntos finales, Author Europe. Por lo que mucha gente realmente escribe la cadena estática justo aquí, como si en realidad escribieran antiguo host local. Son cinco esos y rebanar corte del FBI Ya sabes, no me gusta hacer eso. Hicimos el archivo estático para que pudiéramos evitar eso. Y si necesitábamos cambiar y pudiéramos cambiarlo un solo lugar y funciona, ¿ verdad? Entonces, en su lugar, solo podrías decir puntos finales. Ese autor, punto de lo que esto realmente haría es hacer literalmente todas estas líneas fuera de cancha en una sola meta, ¿ verdad? Todo eso se habría hecho en una sola llamada en entonces automáticamente devolvería No. Aquí algo salió mal? No, claro que tienes que probar. captura son sólo 10. Gestiona eso, Ya sabes, experimenta un poco mejor. No obstante, porque fuera de operaciones adicionales, como agregar la cerveza hablando antes de la llamada y así sucesivamente. Ya sabes, fue mejor el dedo del pie abstraído del componente. Ponlo en su propia clase. Yo sólo lo llamaría como lo necesitamos. Está bien. Por lo que sólo voy a dejar esta tierra de cool elogiados para que puedan ver lo que fue posible. Está bien, Pero realmente no los necesitamos porque tenemos o síndico fuera del repositorio. Tampoco autor Repositorio, como saben, implementa una clase que realmente está llamando a funciones desde el repositorio bestia. El repositorio basado tiene estos errores en este momento. Por lo que vamos a arreglar estos errores y luego re factorizar este tribunal para que se parezca más al problema tp causa del cliente en contraposición a estos factores causa o construimos nuestro cliente manualmente. Entonces quiero cambiar este dedo del pie. Http. El cliente está bien en ellos subió. ¿ Este también? De acuerdo entonces vas a ver un montón de otros errores apareciendo porque no No No necesitamos hacer esto. Crear cliente porque este es un creado probando esto. Acabamos de inyectar a nuestro cliente que existe. Está bien, así que sólo voy a ir a la cima. Este es el crear on. Vamos a reescribir todo esto y probablemente condensarlo dedo del pie tal vez tres o cuatro líneas . Entonces lo que vamos a tener es Bueno, lo primero que probablemente querría hacer es asegurarme de que el token al portador esté presente, ¿ verdad? Alguien dedo del pie toma esto y lo pone en la parte superior en Dar el sol en el marcador. Por lo que sabe que el cliente que se acaba de inyectar favor de agregar el default mejor off bureau encendido entonces todavía tenemos la función para obtener el token portador. Está bien. Y entonces esta es una función de crear. Por lo que sé que se espera que haga opuesta Say subrayado clientes. Puntos planteados. E lo creo? Fuera de curso después de cómo publicar un fregadero en. Entonces esto se va a llevar la u R I. Así que tenemos puntos finales. Perdón. No habría sido punto. Así que lo han hecho los demás. Perdón, estás yo encendido. Después tenemos té. Es nuestro objeto o B J mi pero está bien, así que tenemos O B J o b j siendo lo que se pasó en Andi así VJ es lo que pasamos en. Además, déjame volver a leer, Así que no se plantea un fregadero. Si sí publicamos un fregadero y miramos las sobrecargas, tendremos que convertir el viejo Bijan a algún derecho de contenido http. Entonces contexto temprano, podemos decir post como Jason E se hunde. Entonces se lo decimos tipo T, señor, Recuerda, los tés son genéricos porque no sabemos si está destinado a ser autor o va a ser libro o si incluso va a ser usuario, no sabemos, Entonces los tés son objeto abstracto. Entonces estamos diciendo cuando envías los mensajes y el equivalente Jason de cualquier objeto que esté aquí en esto arriba, esto todo BJ este objeto literal tiene el batidor. Entonces esto debería ser yo debería haber dicho clase, Así que envía el equivalente Jason de cualquier clase es t en el tiempo libro usuario autor, etcétera en d o B J tiene el batidor real empaquetado que se debe enviar a través de la derecha empacada. No, esto devuelve y mensaje de respuesta http que es lo mismo que declaramos no aquí . Entonces voy a decir que la respuesta http es igual a esperar esa llamada. Entonces puedo borrar todo esto. Y entonces lo que no tenemos es nuestro cheque que tenemos antes de donde vemos si el código de respuesta es ese entonces devolver verdadero, lo contrario volver para. Entonces ya ves, solo condensamos bastantes líneas fuera de la cancha en remolque, tal vez dos líneas en la misma declaración que había antes. Está bien, así que sólo vamos a hacer eso por todos fuera. Yo soy alguien para hacer lo mismo por borrar. Permítanme sólo escoger un punto adecuado. Entonces, sí, quiero quedarme con esto, Pero entonces no necesito esa parte. Entonces voy a ver cómo primero me deja añadir la cerveza hablando. Por lo que siempre queremos hacer eso primero en el token de cerveza. Muy bien, entonces. Ver? Clientes. Dardos. Onda. ¿ Hay una eliminación? El think está ahí en las aguas. Eliminar necesidad frente como, uh, parámetros. Por lo que quiere solicitarte. ¿ Soy tan literalmente? Sea lo que sea que tuviéramos aquí en, sólo se puede decir que Ponerse aquí, entonces esto devuelve nuestra respuesta. Échale de menos. Por lo que queremos ver http Mensaje de respuesta es igual esperar a este auto porque es una cosa. Por lo que tenemos que asegurarnos de que estamos en peso. Entonces solo elimino todos esos extremos fuera de la corte y traigo o si declaraciones. Está bien, así que vamos a asegurarnos de que nos acordamos de poner la cerveza hablando antes de que haga la llamada. Muy bien, entonces al siguiente queremos conseguir un registro específico entonces al siguiente queremos conseguir un registro específico. Entonces lo que vamos a tener aquí es en primer lugar, vamos a conseguir que el Estamos hablando se involucre en su o cliente. Y luego fui a tener nuestro vamos a ver, recuerda que no. Aquí. Habríamos obtenido una respuesta. Evaluó el cordón encendido, consiguió el contenido para regresar. ¿ Verdad? Entonces, esencialmente, cuando cambiamos la suela al cliente, no obtenemos si tampoco obtiene participación de financiamiento. Por lo que acabamos de devolver el contenido, Entonces si no consiguió contenido va a volver. No. Está bien, así que voy a ver a vier. Respuesta es igual a on. Entonces los clientes atracan, Póngase en marcha. Ya puedo ver. Obtener de Jason e fregadero. Lo que sea. Tipo de clase en el momento en adelante, entonces eso va a esperar la U R I para eso. Entonces el eres a o U R l Lo siento sería u R l plus i ds Y simplemente es que ahí dentro , entonces puedo devolver respuesta. Entonces todos fuera de las escuelas son que teníamos acabo de devolver respuesta Rx Así que ahí vamos tres líneas en conseguir esa línea roja porque necesito esperas. Está bien, así que aquí vamos. A continuación, tenemos el salir de la lista, por lo que es más o menos lo mismo. Yo sólo voy a copiar esto. Andi puso eso dentro del try. Excepto esta vez, sólo tenemos la URL, no Europa, más yo d Así que es solo la URL en esta ocasión. Es una lista fuera tipo t Así que se ve aquí sin una lista fuera de T. Así que va a ser lo mismo allá en. Después devolvimos la respuesta para que todo esto literalmente desaparezca. Está bien, así que quiero decir, hay buena ventaja, Ya sabes, probablemente puedas volver atrás y ver si puedes re factorizar nuestro repositorio basado original a esto , pero quiero dejar el original en el camino que está encendido. Entonces tienes dos ejemplos. Tienes la corte original, y tienes este método. Pero esto una vez más, está en el proyecto de ensamblaje Blazer Web para el repositorio de bestia. Está bien, vamos, entonces, por los títeres o alegre. Simplemente seguí adelante y lo hice. Entonces una vez más, quiero decir, dejé el cheque inicial. Incluí el conjunto token portador de la respuesta para poner como Jason un fregadero un tipo t con la URL en la puerta de agua un paquete en que estoy tomando si el código de respuesta es bueno o no al regresar. Está bien. Entonces así es como se ve nuestro repositorio basado no cuando hago una compilación. Estoy recibiendo estos errores en los demás porque, bueno, todavía están mirando la biblioteca del cliente http. Entonces eso es lo que se ha planeado. Fábrica. Por lo que sólo pasaré por el repositorio Autor sobre madres de bebés. Por lo que ya no es mi fábrica tipo TTP. Lo es. No. La clase de cliente http en archivo dwell fluyó, fue excluida o está siendo excluida por no. Tenemos que asegurarnos de que lo hacemos para el repositorio de autenticación en. Entonces vamos a tener acorde del refractor del dedo del pie en esto también, porque recuerden que esto está usando la fábrica actual. Entonces sabe cómo sería esto es que algún post se opone como Jason. Cualquier cosa, ¿verdad? Entonces voy a empezar diciendo que la respuesta de barra es igual de dedo mis clientes empiezan a posar como está encendido. Ese es nuestro Jason. Te hundes y fuera de curso después, mira, espera. Por lo que pobre dice Jason es pensar en arma estaban llamando en puntos, no Logan Endpoint on. Estamos pasando en el usuario como nuestros datos. Correcto, Así que esa es nuestra publicación en. Entonces voy a sacar todo esto porque esta línea una vez más reemplazó todo esto anotado. Vamos a comprobar si fue un éxito. Starter anotó nuestros nudos Muy bien en aquel entonces. No necesitamos dedo del pie. Toma todo el resto de esto porque queremos el contenido de la respuesta. Vamos a disparar, sentarnos y conseguir la ficha. Todavía vamos a establecer el almacenamiento por defecto hablando de cambiar el estado fuera del arriba en entonces bueno, podemos rutinar esa línea off cored, pero no creo que esto sea necesario porque realmente lo estamos agregando a la llamada cada vez todos modos. Pero sólo lo dejaré ahí como poco fuera de la cancha de legado. Está bien. Diga, mira esa línea. Simplemente él piensa Bastantes. De acuerdo, Dejamos el barco del amor, como está en aquel entonces. Justo lo mismo para el padrón donde estoy metiendo eso tenemos. Perdón. Sólo déjame normalizar. Entonces tenemos respuesta siendo igual a una llamada de post al endpoint de registro, y estamos pasando el objeto de usuario solo para parecernos en D. C este 19 Por supuesto. Una vez más, acaba de quitar tal vez seis líneas fuera de la cancha. Muy bien, así que sólo puedo quitar todo ese cable heredado en las dos líneas. Habríamos registrado a una persona o nudos, ¿verdad? Entonces ese es nuestro nuevo repositorio de look on. Entonces voy a hacer una construcción sobre Dhere. Voy a subir al aire en mi arriba La maquinilla de afeitar en él se está quejando de un programa de embarcaciones. Entonces déjame revisar mi programa. Financiero. Todo está bien encendido cuando reviso. Veo aquí que tienen al Dr. Watson dos veces. ¿ Verdad? Por lo que hay un espacio de nombres simple. Uh, en que voy allá atrás, la codificación de color no es lo que debería ser. Déjame construir de nuevo. Está bien, en él está construido. No creo que nos lleváramos el contenido para la actualización. afeitar. No, no lo hicimos. Entonces la Abdolreza recuerda que Nosotros habríamos consagrado con la vista autorizada sobre la cascada de ciertas cosas, así que en realidad voy a hacer eso. Está bien, déjame simplemente copiar esto, pero voy a mí unos cambios. Los cambios de uso de Andi afectarán la experiencia para el usuario. Entonces lo que pasa ahora mismo es que si alguien no está registrando y trataron de llegar a una página, probablemente sólo tendrían en el Pete. Lo que quiero quisiera hacer es probablemente redirigirlos dedo del pie largo en p dread o el log impide. Por lo que voy a modificar la vista de ruta de los ojos de autor. Entonces voy a convertir este pueblo en una persona abierta y cercana para sacar esa charla. Después pon una plática de cierre para ello de forma manual. Ahí vamos. El día dentro, fuera de esta vista de ruta autorizada, voy a poner ah flood que no está autorizado. Y luego dentro de aquí, básicamente se puede poner un componente, se ponen algo para ver. Esto es lo que debería pasar cuando alguien no está autorizado. Entonces lo que voy a hacer es configurar un componente sobre que voy a llamar a redireccionar para iniciar sesión . Entonces es rojo porque aún no existe. Embarcaciones. Eso es fácil de arreglar para nosotros. Por lo que sólo vamos a hacer un componente de vestuario y que pone el interior de compartido por lo que es accesible globalmente más o menos nuestros componentes Reza. Vamos a llamarlo redireccionamiento para iniciar sesión en Andi bastante. Todo lo que va a hacer es simplemente navegar dedo del pie el anhelo p dreck. Entonces una vez que se redirige aquí, sólo se va a inicializar el dedo del pie un, sólo navigato cargando. Está bien, así que vamos a construir sólo uno más. Vemos que tenemos un edificio exitoso. Voy a parar aquí mismo. Entonces cuando volvamos vamos vamos a probar los frutos de nuestro trabajo o factoring vamos a hacer inter intereses con la autenticación Onda, la gestión del libro Lo siento, la gerencia del autor, ya que la gestión del libro requiere de cerca, lo cual no está del todo listo, pero vamos a seguir adelante a prueba algo de ello 61. Correcciones y agregaciones esenciales del diseño: Muy bien, entonces estamos dentro. Tenía algún problema de calidad de datos. Por lo que efecto indirecto esos en. Podemos ver que nos estamos poniendo esa mirada y sensación de estado autenticados. Si voy al discurso del autor, entonces volvemos. Todo para autores. Dana no lo es, quiero decir, así que sólo está consiguiendo las opciones de vista. Si hago clic en ver y vemos de dónde lo sacarás? ¿ Atrás? Uno. Entonces ven aquí, voy a volver. Tesis del costado de Ese es el brindis. Entonces creo que necesito hacer algo de limpieza, pero eso no es problema. Simplemente queremos verificar que estamos volviendo o disuadir. Si miro los libros, hincha, los nuevos proyectos o no, fuera de estas portadas de libros se estarán mostrando, Así que está bien. Eso es comprensible, pero necesitamos conseguir un control sobre estas modificaciones post. Está bien, así que al menos hemos visto que nos mordimos con éxito son la cirugía trajo nuestro servidor llamado a la asamblea Web, y la mayoría de las cosas como un guante. Diferencias menores. Entonces, solo sigamos adelante y limpiemos nuestra aplicación. Está bien, así que déjame empezar con el brindis, para que a los brindis les faltaría un archivo CSS, que tendría frijol en más de páginas y hospedaría a Andi. Ahí está esa referencia de archivo CSS. ¿ Entiendes? Para copiar eso y ponerlo en sobre índice, inicia Eastern de archivo de este lado. Enseguida, entonces. Yo sólo voy a pasar y asegurarme de que la notificación de tostadas esté llegando en el momento adecuado. Entonces en esto, en nuestro crear o hicimos se dijo que si es un crear exitoso, entonces, ya sabes, ya sabes, mostrar el brindis mientras navegas lejos. Eso es bueno. Hacemos eso para las eliminaciones de la misma manera para el error, justo ese índice donde no hay tostadas en índice. Pero entonces, por la razón que sea, pongo el brindis para la página de vista en las tapas, ¿ Entiendes? Atrapado eso, ponlo debajo de la inicialización del modelo. Entonces una vez que un modelo obtiene sus datos, entonces mostramos nuestro brindis, viendo todo tu no visualización para siempre. Entonces eso debería arreglar esa preocupación. Por lo que sólo seguí adelante y miré el archivo de vista para los libros y vi que lo tenía en el mismo lugar y las tapas. Acabo de replicar ese gen fuera de los pensamientos. Muy bien, así que nuestra aplicación está funcionando. No, Lo que tenemos que hacer es averiguar qué estamos haciendo respecto al libro. Cubrir. Los caminos están abiertos. Es en general. Por lo tanto, permítanme revisar qué todo acerca de las cargas desde la aplicación del servidor. La expectativa habría sido que esta aplicación, la aplicación del servidor Blazers, hubiera sido almacenada o alojada en una máquina servidor, una máquina central donde las personas que crecen hasta el Earl Andi ejecutan el up on cuando subir. Se va de pie ese servidor. El ensamblado Web arriba funciona un poco diferente porque en realidad se está cargando directamente en la máquina de los clientes. Nuestros chicos. Entonces lo que he hecho aquí es toe run, tanto el ensamblado Web en el servidor arriba lado a lado. Muy bien, entonces todo lo que se iba a estudio visual ir a la solución. El inicio de propiedades y selecto en los tres proyectos en funcionamiento del FBI de una manera diferente . Sin balas, ambas aplicaciones cliente ironía lado a lado en inspeccionar elementos al mirar al Señor de la Red para cualquiera de las aplicaciones. Se puede ver eso bien, el donde el ensamblado carga algunas cosas más de las que hace el servidor. Además de eso, te basas en qué navegador estás usando o a veces realmente puedes ver. Se está cargando el archivo DLL. Por lo que las ofertas sobre todo el contenido necesario para los sitios web o para la aplicación en realidad se cargan directamente en el navegador a la vez. Por lo que no hay donde Central para una carga de archivo, en realidad lugar de archivo. Entonces por esa razón, lo que vamos a estar haciendo es extendernos sobre un PNG que acaba de cerrar. Estos serán extendiendo nuestro A P I para el crear en cualquier dedo del pie de libro incluir un espacio para nuestras subidas de archivos. Entonces estaremos subiendo archivos al FBI y el FBI los estará almacenando en lo que dijo un ER de reserva , EPA está siendo alojado en. Está bien, entonces en eso vamos a estar trabajando cuando regresemos. 62. Blazor WebAssembly y los archivos de la API y API (Crea y vista): ustedes chicos bienvenidos de nuevo. Entonces, no, vamos a estar modificando nuestras operaciones de libros para atender nuestras subidas de imágenes. Cuando la escucha anterior, habría mencionado que las aplicaciones de ensamblado Web no serán capaces de manejar las cargas de archivos de la forma que hubiéramos visto con los servidores. Onda más específicamente sobre blazer server up en librería Te hubiera permitido subir el archivo y almacenado en el servidor que el servidor arriba está siendo alojado en la web. montaje, sin embargo, no tiene tal mecanismo ya que teóricamente no hay ningún servidor detrás de él. Entonces lo que vamos a hacer es modificar sobre el FBI de tal manera que podamos atender para manejar ah, carga de archivos o transferencia de archivos entre la aplicación cliente Aplicación cliente de ensamblado web en el servidor en el que se está alojando el FBI. Está bien, así que dentro de todo el escenario, fuera de las partituras y todas las tareas que hemos llevado un poco para ver que los terceros vendedores del FBI no han extendido la oportunidad para que realmente enviemos los archivos en su lugar de tener los agujeros los archivos nosotros mismos. Está bien. Entonces voy a empezar modificando el modelo de libro en el a p I. Así que tenemos el DT a DT Oh, lo siento. Reservar DT Oh, archivo en nuestra librería FBI en. Voy a modificar las tres clases alguien dedo del pie agregar una nueva propiedad en Voy sólo un detractor sobre el precio en este va a ver un archivo de cadena. No, este archivo de fuerza va a ser diferente de la propiedad de imagen de flujo porque la imagen se va a almacenar en la base de datos. Ese valor está destinado para la base de datos. Sobre este es solo un poco de nieve Algunos batidores sobre el archivo que se está originando desde el cliente para que podamos tenerlo en el lado del servidor para el bien. Pero a medida que vamos adelante, ves, Así que sólo voy a añadir esa propiedad para reservar GTO en cualquier otro detalle que puedas tener bien, a saber, libro actualizado en libro crear porque también vamos a estar usando esta propiedad toe obtener los detalles del archivo para una actualización así como obtener detalles para crear el. Entonces cada vez que estamos cargando nuestros datos utilizando el libro regular BTO, también necesitamos cargar los detalles del archivo por imagen. También voy a modificar un poco la estructura A completa, y voy a incluir un uploads fuller. Entonces justo a la derecha, haga clic en los proyectos. Ir a agregar Seleccionar Nuevo Fuller on Voy a llamarlo cargas. Está bien, Entonces aunque subidas irán aquí así que no tenemos el doblete un poco de la ruta para lo que hicimos en el, bueno, bueno, el ensamblado Web o el servidor. No tenemos eso aquí, Así que no voy a ir demasiado del dedo del pie Bernie. Simplemente creamos y subimos carpeta en. Tan solo notaremos un punto al contenido con en lugar fuera de la ruta del entorno. Ahora pasemos al modelo de libro para nuestros proyectos de montaje. Entonces teníamos el libro, no CS encendido. Voy a añadir ese archivo. Siento ahí también, para que haya un mapeo directo entre el detalle en el modelo de UPS de ensamblado Web. Muy bien ahora, vamos a pasar a nuestros componentes de creación y vamos a modificarlo un poco. Entonces voy a tomar toda esta referencia de servicio de subida de archivos porque no voy a volver a confiar en el mecanismo regular de carga de archivos, así que no necesito una referencia a ese servicio. Y por supuesto, si elimino eso, vamos a obtener algunos errores a continuación. Pero eso está bien. Entonces esto puedo simplemente quitarlo y voy a comentarlo solo lo quito. Entonces vamos a modificar este dedo del pie del cordón les está gustando. Ahora el concepto detrás de lo que estamos a punto de hacer se basa realmente en lo que hicimos aquí al explorar la propia carga de archivos. Muy bien, Entonces cuando hicimos la selección de archivo de manejo, lo que hicimos fue que obtuvimos el archivo que fue seleccionado. Hicimos alguna validación el. En realidad revisé este tribunal, y creo que sería mejor conseguir la extensión. Entonces en lugar de mirar el nombre del archivo para ver si contiene, voy a conseguir la extensión, correcto. Entonces acabo de hacer ese cambio como estamos ya que estamos aquí ahora mismo, y luego me lo llevaré. El extensión contiene estas palabras clave para la validación son porque lo que pasa es que cuando haces nombre de archivo, podrías tener algo un archivo txt con el nombre J p. G. Así que podría ser jpg, doc. Txt. Correcto, así fue Digamos que una mala decisión de mi parte. Si lo cogiste y ya lo arreglaste, entonces te honraste. No hay problema. Todo mejor. Entonces vamos a seguir adelante. Entonces después de que estamos validando o archivando, eso se acaba de seleccionar. Lo que hacemos se sube a un flujo de memoria en. Después hacemos algo de conversión toe obedecer 64 cadena de datos y luego usamos que sea 64 fecha astri toe, crear un on on representación inmediata o vista previa del archivo. No, lo que vamos a hacer es confiar en esta base de 64 datos del dedo del pie, realidad el transporte a través de la tubería entre el FBI y los clientes. Entonces esto en realidad es solo una cuerda. Si lo miras, es como un enorme silencioso que solo representa los datos para que puedas convertir a partir de los datos. Este flujo de memoria representa la fecha arriba ¿verdad? Entonces el lector representa los datos reales, o al menos la espiral M s representa los datos reales cargados en la memoria, y es como donde d serializarlos en una cadena estática. Y luego puedes tomar esa cuerda en re ingeniearla en una imagen que es más o menos lo hicimos aquí. De acuerdo, um, Entonces lo que vamos a hacer es confiar en esta línea fuera de la cancha para darnos los datos base 64 que luego vamos a estar fregando en nuestra propiedad de archivo para el libro. Está bien, así que hagámoslo juntos. Entonces, crea cuando estemos juntando todos los detalles de la imagen y lo que sea y luego dijimos el nombre de la imagen. Déjame quitarme un poco esto. Lo que voy a hacer es decir también el archivo de puntos modelo es igual al archivo M s, que es el flujo de memoria. Está bien, eso tiene todos los datos. Ahí está esa corriente de memoria. Por lo que alguna vez aconsejaría un poco a esta cancha donde en lugar de tener múltiples flujos memoria tengan un flujo de memoria, Así que si no tienes esto hecho, solo puedes mirarlo. Tenemos un flujo de memoria que es global a toda la página en. Entonces lo que hacemos en la selección de manejos es que sentimos este flujo de memoria con los datos, Entonces eso significa que para todo el ciclo de vida fuera del discurso, ese flujo miembro tendrá los datos que represente la imagen que acabamos de seleccionar. Entonces todo lo que voy a hacer en este punto es convertir. Básicamente es hacer esto, verdad? Entonces esta imagen Bay 64 datos donde convertimos no para ser un stream de 64 solo voy a copiar eso desde que ya he estado ahí en, eso es lo que va a ser el valor para el archivo. Por lo que la cadena que se va a generar a la base 64 que se va a incluir en el archivo on, luego enviada a través del cable con el modelo y fuera de curso, nuestro libro, BTO, tiene el archivo propiedad, por lo que va a recibirlo entonces saber lo que tenemos que hacer es procesarlo en, luego volver a ingeniarlo en el archivo físico que se va a mostrar son para ser guardado más bien en nuestro orden de cargas. Pero todo lo demás sigue igual porque seguimos recibiendo el nombre de la imagen como de costumbre fuera de curso. Vamos a tener que cambiar algunas de las cosas del camino a medida que avanzamos. Pero para eso estamos aquí. Está bien, así que sepan que hemos hecho esto. Lo que vamos a hacer es simplemente modificar la acción de creación para nuestro libro. Simplemente haz eso al mismo tiempo. Entonces tenemos crear en el día, vamos a tener que modificar lo que sucede dentro de esto. Entonces voy a revisar después de que hayamos hecho todas estas operaciones. Y lo voy a hacer después de que sepa que fue una creación exitosa fuera de registro porque quiero subir el archivo. Entonces la creación del registro se siente así que simplemente podemos hacer esta operación después o comprobar para ver si fue exitoso alguien para ver si no el punto de cadena derecho es no están vacíos. Significado son sus datos dentro de esta cadena y la cadena que voy a inter get está en nuestro libro BTO archivo acoplado. Está bien, así que recuerda, nos encuentra cuerda, así que estoy revisando. ¿ Obtuve algo dentro de esto y todo el camino debería conseguir algo dentro de archivo es si había un archivo en DWI. Obtuvo la imagen así como el archivo físico. Cadena ser 64 string. Correcto. Entonces si hay en los datos dentro de ese archivo siento pena, entonces lo que quiero hacer es conseguir el pozo crea una ruta de imagen. Por lo que nuestro camino de imagen para salvar nuestro pase I am G es igual a on. Necesitamos nuestros ambientes. Alguien a quien volver. Tendría que incluir algunas de las cosas que incluimos en el original. Entonces déjame solo retroceder. Entonces solo estoy corriendo paralelo para que, ya sabes, veas que la mayoría de estas cosas lo hicimos antes con este tipo de transferencia de conocimientos, ¿ verdad? Por lo que en nuestra carga de archivos, tendríamos en inyectado I ambiente host Web. Y eso es lo que nos da acceso a los cuatro enteros. La estructura fuera de la aplicación del servidor. Una vez más, la aplicación de ensamblado web no tiene un entorno host web, pero nuestro FBI sí. Por lo que esta biblioteca no funcionaría dentro de nuestra con montaje. Es por ello que comentamos todo ese cable de carga de archivos inicialmente para deshacernos del Eros. Pero está muy presente en nuestros A ks. Yo sólo voy a pedir prestada esa línea en el controlador de libros Dinar. Se lo voy a inyectar todo bien. Y por supuesto, mientras lo inyectábamos teníamos dedo del pie incluir la referencia faltante. Entonces una vez que hayas hecho eso, entonces puedes continuar. Entonces cuando vamos a crear sobre camino de imagen, voy a tener que ver algo como qué? Simplemente uso mi interpolación en construir todo el camino así que primero hay que conseguir nuestro entorno. Por lo que subrayan los puntos de envidia en. Entonces, en la anterior que usamos, déjame ver qué usamos en la subida de archivos. Utilizamos el camino Webroot ahora. No hay camino Webroot porque la ruta Www es lo que Ruta pot. No hay ninguna parte Rupa En nuestro acre, no tenemos raíces www. Entonces en cambio tengo que usar ruta de contenido, que es donde están nuestros aplausos para eso, que es la olla raíz para todo nuestro ayuno de todos modos, ¿ verdad? Entonces voy a decir, ¿Dónde estaba yo en el controlador Envy Dots Content route Path on. Entonces solo voy a construir toda la parte aquí slash sube slash Recuerda, tenemos que hacer la barra doble por el personaje de escape encendido. Entonces voy a ver libro GTO imagen de punto. Correcto, así que el detalle del libro no imagen, porque sé que eso es lo que quiero ver. Vitter tiene razón. Yo lo quiero ver en las subidas. Folo en el nombre de la imagen o la familia y me topé con la pipa en el detalle. El objeto está en la propiedad de la imagen. Entonces ese es el hallazgo que pretendo usar. Muy bien, entonces voy a convertir sobre Bay 64 string. Eso estaba en el expediente. Propiedad en remolque. Ah, muerde, Date prisa. Muy bien, entonces vamos a crear la mordida, Ari. Es decir, esto podría haber sido fácilmente despedido de barra, pero estoy usando el tiempo de datos explícitos solo para que puedas ver exactamente lo que está pasando. Entonces estamos viendo mordida, Ari. Picaduras de imagen es igual a convertir de la cadena Bay 64. Correcto. Y si solo miras la sobrecarga o lo que se necesita, se necesita, regresa en mi atari, y toma una calle. Tenemos ambos. Entonces tenemos el área de mordida para recibirla, y estamos convirtiendo la cuerda. Esa es la cadena base 64 que se encuentra en el archivo. Muy bien, entonces. Una vez que hemos hecho todo eso, simplemente lo hacemos archivado bien todo atrás. Entonces básicamente estamos viendo archivo, que es esto conflictivo porque, vale, no quiero esta función de archivo. El funcion son que quiero son la clase. Yo quiero despond en sistema que le debo ese archivo por lo que podría tener ese conflicto. Si tienes ese conflicto, solo necesitas calificarlo. Sistema que no voy a archivar es igual a anular. Perdón. Sistema que no archivaría punto Derecho, Todo muerde. Entonces tenemos la parte de la imagen, sobre la que acabamos de construir. Entonces la imagen muerde. Está bien, está bien. Por lo que tengo buena mente tomar esto para dar una vuelta, así que sólo voy a empezar nuestro proyecto. ¿ Todo bien? Entonces estoy logueado como admin, y estoy en los libros sexual inimical a la página de crear on justo fuera del Pero estoy recibiendo un error. Entonces déjame solo revisar la consola y ver qué está pasando en. Estoy recibiendo un error para el que no podemos encontrar entrada blazer. Entonces eso significa que me falta alguna referencia. En algún lugar de esa referencia hay un archivo JavaScript. Por lo que en los hosts o el archivo host del proyecto del servidor, habríamos incluido sus barcos. Supongo I Se pasa por alto esa inclusión cuando buscamos más. Por lo que sólo voy por encima del dedo del pie el proyecto de ensamblado web en el archivo de índice en incluido de la misma manera. Y luego intentemos eso otra vez. Está bien. Y estamos de vuelta. No hay error esta vez, así que sólo procedamos. Voy a seguir adelante y crear un libro. Entonces este, lo voy a llamar Auto Bio. Yo lo voy a dar en Spn, Dale un valor sensato. Un autor seleccionador de premio. Mi libro sobre entonces los momentos han estado esperando elegirá un lugar lejano para elegir mi tiro en la cabeza. Después haga clic en crear libro en, luego fueron redirigidos. Y obtenemos nuestro éxito, señora supongo que algo salió bien de vuelta en nuestro estudio visual. En la solución Explorer. Vemos que efectivamente conseguimos ese archivo a través del lucio. Está bien, así que vemos que se convirtió una cadena 64. No a la batería y escrito a la ubicación correcta en esa es nuestra esperanza. Cerrar carpeta. Aquí mismo. Por lo que eso funciona bien en el DNO. Podemos continuar con nuestra prueba de concepto a través de las otras páginas. Entonces eso fue para el arroyo. Por lo que puedo cerrar crear ese componente está hecho. Lo que voy a tener que hacer No, para nuestra vista, índice y Raisel es asegurarnos de que nuestra imagen realmente se esté enviando de otra manera, Significando que estamos enviando desde el a p R desde el servidor. Entonces los clientes, ¿Cómo voy a hacer eso? Bueno, sí lo mencioné Ahora eso es lo que tenemos nuestro nuevo archivo de llamada de propiedad por derecho. Por lo que necesitamos toe convertido del archivo físico a A por su cadena 64 en base 64 string. Perdón por. Después póngalo en el archivo en el objeto encendido, luego envíelo a través del cable. Entonces empecemos ese es proceso con nuestra opinión. Componente de vista bien completo primero, pero la vista Ah, acción. Donde nosotros Así de donde consigues los libros? Esto es obtener libro uno libro. Todo bien ahora en get book. Lo que voy a querer hacer es sacar el camino de la imagen que está dentro fuera del registro. Entonces cuando obtenemos el registro, si hay un valor de imagen, porque puede haber muy bien no haber una imagen anexada a los libros requeridos, por lo que necesitamos querer solo conseguirlo. Si efectivamente hay una imagen, asegúrate de que el archivo exista y luego convierte porque si no logramos hacer todo eso, entonces definitivamente captará una excepción. Y apenas a través de un 500 0 en cualquier momento tratamos de navegar Así que primero voy a tener el dedo del pie, hacer algo así como después de conseguir el disco en luego tenemos mercado en el DT Oh, voy a comprobar en DSI si nuestra propiedad de imagen no se conoce Lar vacío derecho. Entonces, si las tuercas de cadena no están todas vacías, no la cadena es no están vacías en la amenaza de imagen de stock de respuesta Así que nos aseguramos de que efectivamente haya un valor. Entonces necesitamos el camino fuera de la imagen. No, ya escribí frío así en el create donde estaba sacando bien el camino. Y luego fui tras ella. Un poco similar fuera de cancha conoce mi filosofía y una buena regla de oro es que si tienes que escribir lo mismo más de una vez en más de una especie, escríbalo un lugar donde todos puedan llamarlo. Entonces, en otras palabras, sólo estoy en función creativa que va a devolver Ah, camino completo para cualquier necesidad de imagen dada, correcto, así en la parte superior. Y no hay razón en particular yendo a los mejores barcos, ya sabes, puedes escribir una función en cualquier lugar dentro de un controlador. Es decir, una vez estuvo en la clase. Pero sólo voy a poner este en la parte superior aquí, y sólo voy a crear una función de cadena rápida, privada que va a ver consigue ruta de imagen. Muy bien en. Entonces se va a tomar un parámetro, y eso son privados. Se va a ocupar la cadena de parámetros imaginando. A ver. Bueno, finalmente, cadena por fin ahora, Cool thing. Ah, barco c afilado hacia arriba es que podemos hacer todo esto en un extremo. Pero primero les voy a mostrar algo, donde lo que voy a hacer es regresar, y luego sólo voy a hacer la misma cadena interpolada. Pero esta vez voy a tener que encontrarlo porque estamos de paso y lo despedimos. Por lo que tengo las reglas de contenido del entorno. El carpeta de arriba cerca sobre cualquier nombre de incendio que se esté pasando es de esa manera. cualquier momento que necesitemos interrogar a ese más completo, sólo podemos obtener la parte completa de esta función. Está bien, vamos, entonces, si es que tenemos, ya sabes, me teníamos para esto en otras clases u otros ajustes que no están solo en este controlador lo que podemos hacer un poco más accesible, pero para no, este es el único lugar que lo necesitamos Ahora, Ver, afilado. Nos permite escribir todo esto sin las llaves. Entonces podemos casi a la derecha, como la expresión Lambda donde voy a ver el literalmente el puntero lambda encendido, luego abrir y cerrar brisa. Entonces lo que sea que quieras regresar. Entonces, en cualquier momento que tengas a este solo liner yendo, hijos donde no necesite un cómputo rápido y regrese, puedes escribirlo así, en realidad. Muy bien, así que solo mostrarte otra forma de hacerlo aquí funciona. Entonces aquí, esto es sólo ir de pie devolver el camino completo para cualquier nombre de imagen que se le dé. Muy bien, entonces puedo seguir adelante y reemplazar en el crear la parte donde dijimos que parte de imagen de fuego es igual dedo del pie, y escribimos todo esto. Voy a reemplazar toda esa cadena estática. Y no me gusta ser cuerdas estáticas que después de reconstruir, nunca es bueno. Ellos llaman a eso cuerdas mágicas sobre lo que pasa es que, ya sabes, puedes cometer un simple error y se tira todo. Está bien, así que es más fácil simplemente construir a la vez y hacer todo lo demás listo. Entonces aquí solo digo, Consígueme el pote de imagen para ambos imagen GTO. Por lo que sólo lo sustituyo por un ex hundido. Está bien, así que voy a hacer lo mismo dentro. Off, cambio. Dónde estaba Buscamos la vista, ¿verdad? Entonces aquí voy a empezar por conseguir el camino de la imagen. Andi, es sólo ir dedo del pie devolvió esa cuerda, así que tuve algo de pelusa nuestra propia. Es terrible que así lo tengamos. Nuestro camino MG es igual para obtener imagen. Cinco. Imagen de libro, ¿verdad? Entonces ese es el camino que queremos. Entonces, como otra precaución, quiero comprobar si existe, ¿no? Entonces si existe, entonces quiero llevar a cabo las operaciones, ¿ Entiendes? Decir si sistema que yo o punto archivo existe esta ruta de imagen en, entonces vamos a construir o morder Ari en algún lugar para decir por ello. Ari on. Yo sólo voy a llamarlo soy G mordeduras es igual a, y entonces tenemos nuestro sistema que debo, no archivar en. Entonces vamos a ver, leer todas las mordeduras, luego el camino yo soy G o la parte a los límites. Entonces estamos viendo leer todas las picaduras. Eso es así que soy GPAs. Está bien, Así que lee todas las picaduras que tiene este archivo. Entonces nos vamos a convertir. Yo soy G mordiendo para ser 64. Después comienza en respuesta o yendo a ver una respuesta. El archivo DOC es igual a convertir puntos en base 64 string on. Entonces estamos pasando en mis mordeduras AMG. Entonces aquí estamos deconstruyendo la imagen en remolque. Esa cadena que sólo va a contener datos. Entonces si le echas un vistazo a la carga útil, tal vez puedas probarla en. Cartero están así. Pero todo lo que ves dentro de esto es solo una cuerda larga con un montón de caracteres aparentemente aleatorios . No, dentro del componente donde realmente pretendemos ver la imagen al revisar el libro. Si hay una persona de imagen que necesitamos ver bien la imagen, qué está haciendo, Rando es tiene una cancha desde el servidor, así que quiero decir, podemos estar hasta molestar, pero solo está mirando las subidas para aunque para esa imagen, no hay carpeta cerrada en nuestro proyecto de ensamblado Web en. Además, ese nombre de imagen peor no ayuda. Pero acabamos de incluir los datos de la imagen al volver al ejemplo apagado. El creador no debería. Por supuesto , todavía volvió al ejemplo de la creación. Construimos lo que llamamos un dato de imagen. Eres l derechos estaban usando los conceptos básicos antes en que se usaba como la fuente para la vista previa de la imagen. Entonces ya que estamos volviendo, obedecer 64 cuerdas. Lo que voy a hacer es que me acabo de quitar esta sección aquí en una copia, nuestro frío que usará para construir la base 64. Entonces solo voy a copiar este bit. Está bien, en, entonces, dentro de ti, eso es lo que voy a poner una especie para que ese cartel, todo eso. Pero no hay Bahía de Imagen 64. Pero sí tenemos nuestro modelo atracado archivado, que tiene que ser un 64 string off course? Si nada vuelve, ¿la cuerda es no? Entonces esta imagen sabemos cómo se va a ver ya. ¿ Verdad? Está bien. Entonces tomemos este para dar una vuelta una vez más lo que acabamos de hacer fue cazar, acariciar nuestro archivo de imagen para la vista, acuerdo? Y vamos a saber click en vista y ver qué vuelve. Muy bien, entonces estamos de vuelta en nuestra lista fuera de los libros en. Entonces. Si veo algo de estos libros, estoy seguro que voy a conseguir algún error de forma o bien, nos sale imagen rota. Ahí no hay nada. No hay problema. Pero entonces, si veo auto Bio, que se trata de eso acabamos de crear donde tenemos el archivo subido, entonces estaré viendo mi imagen. Muy bien, así que este fue la causa serializada del archivo existió uno. Por lo que se convirtió en la cuerda base 64 enviada a través de la tubería como una cadena estática en entonces solo, ya sabes, se muestra en esta puntada de vista previa. Muy bien, Entonces con estos dos hechos, los siguientes que tenemos que modificar serían para asegurarnos de que la imagen se muestre en el listado. Si está presente, Andi toe tiene la cualquier página operada correctamente. Entonces ya ves, hago clic en editar, y ni siquiera empezó a molestar a Lord porque solo hay un error instantáneo. Cuando intenté cargarlo, así que tenemos que arreglarlo. Entonces, cuando volvamos, arreglaremos el listado de índices así como la página Editar. 63. Blazor WebAssembly y subir de archivos de la API (edición y lista): ustedes chicos bienvenidos de nuevo. La última vez que estuvimos aquí, estamos sentados o creamos en vistas páginas, dedo del pie trabaja con el nuevo paradigma off enviar y recibir datos de imagen del simio ¿ya? No. Vamos a empezar a trabajar con la edición. Andi, en realidad he ido adelante y he escrito mucho de la cuerda. Todavía no lo he probado, pero te voy a guiar por cada línea que escribí sobre lo que hace, y luego lo probaremos juntos y volveremos a factorizar juntos. Entonces, empecemos con el hecho de que presenté una nueva función al repositorio de libros sobre Die. Llámalo. Obtener archivo de imagen. Muy bien, entonces el propósito fuera de esta función será dedo del pie, solo recupera el nombre de la imagen que está en el registro cuando se está llevando a cabo un opiáceo. Ahora, el fondo de esto será que cuando estés editando un libro y subas un nuevo archivo, sea el mismo archivo o no, lo que quiero hacer es comparar el nombre del archivo que se está viniendo a través del cable, justo con el nombre fino que está en el registro. Ahora bien, si no cambiaste el lo encontrado que esta presentación será la misma. Si cambiaste el archivo, sin embargo, entonces los hallazgos serán diferentes. Y luego tendremos que quitar el dedo del pie el viejo archivo en el nuevo archivo, igual que hicimos con el servicio de carga de archivos donde tuvimos que quitar el viejo y poner el nuevo. Es un concepto similar, pero entonces ya sabes dónde están nuestras manos. ¿ Algo cansado? No, porque en lo único que podemos confiar es en el texto. Entonces una vez que los datos enviados de los clientes no, tenemos que interrogar para ver es el nuevo nombre de archivo realmente un nuevo significado finalmente después haber editado el registro? ¿ Obtuve un nombre de archivo nuevo o es el mismo? Encuéntralo si es lo mismo que yo no hago nada. Si es nuevo, que voy a tener que hacer algo. Por lo que acabo de introducir esto para recuperar el nombre del archivo de cualquier libro dado en idee. ¿ Verdad? Y lo puse en el repositorio de libros en DSO en el repositorio de libros Clase concreta. Por supuesto, después de implementar interfaz, que luego me daría esta nueva función. Por lo que lo he hecho un sincrónico encendido. Lo que hará es sólo conseguir los libros. No. Cuando escribí esta cancha, me encontré con botes de una época, que estaban atrapadas múltiples ideas. Eso es probablemente porque cuando si lo ejecutas Ah, Basil lo lleva en el controlador, trata de encontrar el mar y reservar dos veces y tránsito operación de Carrollton en una instancia de misma mientras que la otra está activa. Entonces cuando dices como no rastrear su venta en otra palabra que sí, miré hacia arriba, los libros se buscan un libro, pero no estoy rastreando su propia pista no lo use como cualquier punto fuera de referencia para cualquier operación. Está bien, así que puedes probar con y sin esa función y ves que surge la excepción, solo puedes poner en punto de ruptura en la línea de captura en la acción para actualizar el. Entonces estoy bastante seguro de que golpeará esa captura con ese error. Si no lo hace, entonces por favor. Ya sabes, sin embargo, que tan siempre en mente Así todo lo que estoy haciendo es conseguir el libro como ningún seguimiento donde el primero o defecto tiene ese número d encendido. Entonces voy a conseguir la imagen así que todo lo que quiero de eso es la cuerda la finalmente ¿Está bien? No, en el controlador, lo que he hecho y se puede ver que estuve aquí d brillantez. Y acabamos de quitar eso. Lo que he hecho es después de que hayamos hecho los cuatro polluelos, pongo en la llamada al nombre del archivo get image finalmente en función aquí mismo, justo antes de que realmente hagamos el trapeador y la órbita. Entonces estoy recuperando el nombre del archivo el entonces. El motivo de recuperar a la familia antes de la actualización es que bien designado en este punto, el viejo hallarlo está ahí. Entonces la familia y cambió, entonces ya no sabemos cuál era ese nombre tan fino era Andre. Entonces no sabemos qué quitar de carpeta o sube. Está bien, así que estoy diciendo que todo el nombre del archivo en el que actualmente se encuentra imagen vieja en. Después hacemos el opiáceo, después hemos ido a hacer un cheque. Voy a decir si el valor de imagen que viene a través del objeto de transferencia de datos es igual a la imagen antigua. Entonces claro que sólo puede hacer una pausa y luego, ya sabes, replicar el cordón. Pero yo sólo quería explicar Es el nombre de la imagen viniendo a través de la a p. llamo lo mismo que la vieja imagen si no son iguales a lo que quiero dedo del pie encontrar los viejos emite. Estoy obteniendo el camino a la imagen vieja, y quiero eliminar la imagen vieja para que eso sea similar a lo que hicimos en nuestro servicio I A file upload , verdad? Aceptado probablemente más corto porque no tenía el sistema que yo tendría. Pero eso está bien. Tan mismo cosa. Entonces solo estamos comprobando si existe y borrándolo. Si lo hace, eso es si no son iguales. Entonces incluso en el caso donde tal vez haya eliminado el archivo por completo de lo que eso significa que esto no sería o simplemente sería una cadena vacía. Entonces si es una cadena vacía, significa que la persona ya no quiere esa portada de libro en ese libro, pero preferirían conocer imagen, entonces tenemos que quitar la imagen existente cualquiera de las dos semanas. Muy bien, entonces pasamos a comprobar si la propiedad del archivo no estaba vacío grande no son así. Pronto verás donde dije la propiedad del incendio, pero básicamente se va a poner en el mismo lugar que era para los crea ¿verdad? Recuerda crearlo se ve muy similar, pero lo veremos en un momento. Entonces si ellos si el archivo lo siento por si la propiedad del archivo en el objeto de transferencia de datos del libro no es nulo están vacíos, entonces voy a querer convertirlo a una mordida. Ari hace lo mismo que lo hicimos en el crear creado en el convertido en una batería. Perdón entonces, cierto. Todo muerde dedo del pie o nuevo camino con nuestra nueva imagen Nombre boot GTO dot Image on. Entonces tenemos una nueva imagen en nuestro servidor. No. Una vez más, si se realiza una edición sobre bono, nada cambió con la imagen. Entonces esto no sucederá en el camino que establecemos del componente. El único modo en que el archivo se establecerá con un valor es si el nombre de la imagen cambió de todos modos. Entonces así será como llevemos a cabo eso. No. En el componente de edición, empecé tomando notas. las referencias al servicio de carga de archivos i. Yo les quité esos. Modificé la vista previa para mirar, ya sabes, tener el SRC igual que oh, lo teníamos en el create. Simplemente pueden ir para crear y copiar ese poco fuera de la cancha y pegarlo ahí en luego dentro de nuestra manija arriba sea todo lo que hice fue quitado las referencias, el costo de la función del archivo subir una vez más. Pero agrega el hecho de que estoy poniendo en un archivo tan bien. No, acabo de revisar de nuevo. Parece que poner en los factores equivocados se están deteniendo y paseando algún espacio mediático. El carro uno donde estoy convirtiendo toe obedecer 64 string the memory stream, Ari. Está bien, así que eso es lo mismo. Por lo que todo esto luce de la misma manera que como se veía en los crea. Muy bien, vamos, entonces. No escuches si algo cambió, simplemente vaciamos la imagen. En ese momento, una vez más, si la propiedad de la imagen cambia donde obtiene un nuevo valor o es un valor vacío, una vez que venga por aquí, va a hacer la comparación entre lo que existía sobre lo que es. No en, entonces, borrar. Muy bien, borra el viejo encendido, entonces. Si hay contenido en el archivo y recreará el nuevo encendido para cuando llegue aquí, la referencia al nuevo archivo, si hubiera uno ya se habría establecido en la actualización. Muy bien, así que todo sólo podría amortizar el flujo en ese patrón lógico. No, solo lo voy a dar una vuelta, está bien, bien, así que sigamos adelante y tratemos de editar el disco que creamos. Ya que hemos estado modificando estas cosas, estoy recibiendo de nuevo ese error, y me imagino que está relacionado con los matones. Son insumos. Muy bien, Por favor, archivo de entrada. Entonces consigo esa época. Pero en general, cuando me refresco, se va un difunto al momento de esta grabación, creo que es una flecha con esa biblioteca y ensamble Web, así que estoy seguro que nos arreglaremos pronto. Pero vamos a seguir adelante. Entonces voy a cambiar esta imagen. Estoy sonriendo. No me gusta el hecho de que esté sonriendo, algunos poniéndose mi pieza más seria. Voy a decir mi libro para las edades, ¿verdad? Apenas a los cambios. Enviar cambios en entonces ¿qué? Tenía un punto de descanso ahí. Déjame poner un punto de descanso que atrapan para ver si va a atrapar alguna excepción. Tomemos notas del nombre del archivo que hay ahí. Es una D algo, y ese es el expediente. En algún lugar para seguir adelante y presionar F cinco no golpea la excepción en entonces. Si veo, veo mi nueva imagen. Si vuelvo a la solución Explorer, veré ahí es donde sus aplausos Hay un nuevo archivo. Ahí hay. Entonces ahí vamos. Podemos reemplazar los archivos en. Entonces voy a intentar editar de nuevo este libro. Pero no voy a cambiar la imagen. Yo sólo voy con el dedo del pie. Aquí está el resumen escrito por mí. Por lo que se presentaron los cambios en los cambios. Si vuelvo a mirar, la imagen sigue ahí. Onda. Tenemos el cambio que se presentó siendo representado. Está bien, así que eso es bueno para la edición, La cosa final y probablemente la más importante. Y te estás preguntando, OK, cuando vamos a llevarla a ella es arreglar las imágenes aquí en la lista. Muy bien, así que vamos a bajar a esa ahora para modificar los datos que se están enviando en el listado de índices , vamos a tener que cambiar lo que sucede cuando estamos recibiendo los libros. Entonces el mero hecho de que tengamos que conocer concierto esta cuerda base 64 va a marchar va a cambiar Cómo fuimos un barco construyendo viejo nuestro objeto de respuesta. Nuestro objeto de respuesta está en tipo de objeto o una lista fuera de tipo este libro objetos de transferencia de datos. Lo que voy a tener que hacer es Luke a través de cada uno en. Entonces para cada uno con un nombre de archivo en el archivo existe, luego enviaré la cadena Bay 64 correspondiente con ella. Está bien, así que hagámoslo juntos. Entonces para cada uno en doble tiempo, solo generalmente fuente de la misma, y lo dejo en el ítem en respuesta. Presentador. Derecho para cada artículo. En respuesta, lo que voy a hacer es ver si la cadena que contiene el nombre de la imagen no es nula están vacías, ¿ verdad? Entonces sólo voy a hacer esto con los que tienen valores. Si no vienes, no cuentas de ti. Digamos que no tienes un libro terminado. No te dan este trato especial, ¿verdad? Entonces si ellos campo de imagen no está vacío, no hay significado que hay algo ahí, entonces voy a decir si el sistema oscurece el archivo ioo dot no existe. Andi, comprueba el camino para que obtengan trayectoria de imagen pasando. Elemento esa imagen. Muy bien, Así que esto es sólo que Doble otra comprobación sólo para asegurarse de que usted sabe que el archivo existe. Porque una vez más, vamos a golpear una excepción. Si intentamos convertir nada en remolque, Obey 64 Street justo en. Entonces esta conversión se vería igual que con el libro get donde sólo necesitamos nuestra mordida. Date prisa. Y iban a convertir su único justo hacer eso rápidamente por lo que esto no sería respuesta que lejos Respuestas El partido de la lista sería itim dot archivo Derecho. Entonces una vez más por cada elemento dentro fuera de la respuesta, vamos a estar comprobando si hay un Imagine si hay una imagen, ¿existe un archivo en realidad, ? Porque recuerda que si estoy usando la misma base de datos, um, o la misma a p I que usamos para el servidor Web. Estos registros van del dedo del pie tienen imágenes, pero en base al nuevo camino, no son querer existir. Entonces tenemos que comprobar si existen, y luego si sí existen, entonces vamos a leer los pies. De acuerdo, Así que déjame hacer algo aquí en lugar de llamar a disfunción dos veces porque lo necesito. No Aquí también, voy a simplemente guardar nuestro camino soy G es igual a la llamada de función. Está bien, vamos, entonces fui a revisar. Si existe en si existe, entonces se usará allí. Muy bien, entonces vamos a modificar el listado. Muy bien, Así que las partes donde mostramos la imagen, que se apareció imagen SRC Una vez más, sólo voy a cambiar ese dedo del pie. El tipo de curso que teníamos para la vista, ¿ entiendes? Copiar eso. índice de avance lo basó en la sección SRC en esto no sería modelo una bola de fuego. Ahora es libro sobre archivo. Está bien, en DSO Por cada registro que tiene que tener en imagen, debe mostrar de lo contrario eso va a ser no tierra. Vamos a ver las mismas imágenes rotas que estamos viendo. No. De cualquier manera fuera de curso, probablemente querrías poner como, una imagen por defecto. O puedes, ya sabes, comprobar si es no y poner ninguna visualización de texto son ninguna visualización de imagen o algo así, pero solo probémoslo tal como está. ¿ Todo bien? Entonces cuando se cargue la página verá que tenemos nuestra imagen siendo mostrada con éxito, está bien, probablemente puedan pasar por cualquiera de las otras. Y una vez más, estoy consiguiendo esa época. Voy a estar fresco y luego proceder. Elegir fuera de archivo. Déjenme elegir otro. Aan den, Presentar cambios. Muy bien en. ¿ Vemos que ahora se está mostrando correctamente? Está bien, así que eso es más o menos por manejar la carga de archivos. Una vez más, tuvimos que hacer todo esto porque el ensamblado Web no necesariamente soporta el hosting off files en una máquina cliente. Muy bien, así que tuvimos que confiar en el servidor para eso. Entonces si nos hemos ido con el modelo alojado sp dot net core, entonces el servidor arriba como tenemos el servidor aquí arriba que ya habríamos creado. Por lo que el servidor arriba habría actuado como la bestia en el servidor toe store, los subidas. ¿ Verdad? Entonces si vamos con el host y waddle, nos habría dado el ensamblado web así como el servidor arriba ya conectado en. Podríamos haber aprovechado fácilmente la estructura de subida en los beneficios de subida al tener los archivos estáticos aquí. Está bien. Pero luego fuimos con cliente Standalone en DSO. Solo estamos explorando todas las opciones como realmente, es toe server versus kind. A continuación, vamos a ver las aplicaciones web progresivas que creo que hasta ahora hemos sido un trabajo bastante bueno . Off porting o blazer server hasta un blazer que tienen ensamblado en ninguna parte quieren mirar los beneficios del ensamblado Web, a saber, a saber, el hecho de que es se puede instalar de forma nativa o casi nativa en casi cualquier dispositivo. 64. Aplicación web progresiva: Chicos, bienvenidos de nuevo. Entonces en esta lección, vamos a estar viendo todo el trabajo de aplicaciones Web progresivas. Una aplicación Web progresiva en general suele ser una sola aplicación de playa que utiliza MPs de Broza, y esto suele ser un navegador moderno. Andi. Normalmente vería Google Cruel es amable en la parte superior fuera del alcance Andi. La mayoría de los otros navegadores se basan en el motor chrome, pero aún así, Crume tiene ciertas cosas que otros hermanos no pueden hacer. De cualquier manera, utiliza estos modernos ojos AP. Es decir estas rosas tienen el dedo del pie de nadie tienen capacidades como una aplicación de escritorio. Entonces, en otras palabras, puedes construirnos a cabo aplicación web de una sola página que luego puede actuar como un lado del cliente. Se detienen o aplicación nativa dedo del pie cualquier sistema. Por lo que si eres el bro en tu teléfono, podrás descargarlo como si estuviera arriba. Él puede empujar notificaciones a ella. Tiene ánimo fuera de línea, para que, ya sabes, cada vez que consigue conexión, se obvia a sí mismo. Todas esas maravillosas posibilidades existen con aplicaciones Web progresivas. Ahora lo primero que voy a hacer es cambiar mi depuración Roeser. Entonces no voy a usar hasta prom cuando cambiarlo a Crume. Entonces si no tienes borde cromático también es capaz. Pero solo asegúrate de que estás usando uno de los encendidos. Después fui a lanzar nuestra aplicación. De acuerdo, Así que habiéndolo lanzado en cromo, puedes ver un signo más dedo del pie esta parada esquina derecha aquí, y si haces clic en él, entonces te solicitará la instalación. Entonces la cosa es que cuando estábamos creando sobre quien mandó el proyecto, nos aseguramos de subir web progresista porque lo hicimos. Tenemos algunos archivos. Ese tipo de simplemente hacerle saber que se supone que es web progresiva. El navegador está detectando esos rápidos y así dice: Oh, Oh, estoy lidiando con una web progresiva arriba. Bueno, entonces tienes la opción de instalarme. Entonces voy a hacer clic en instalar, Y entonces lo que pasó es que realmente instaló esta aplicación aquí mismo en mi caja fuerte de escritorio . ¿ Tú qué? No puedes ver mi barra de estado. Pero si miras mi menú de inicio, ver que el arriba está justo ahí encendido si lo cierro bien, eso me va a hacer salir d barco amarrado. Pero entonces si vuelvo más a la gente, con sólo la forma en que aparecemos, algo para cambiarlo justo a la forma en que un p i me acaba de decir esto. Un inicio de proyectos. Muy bien en. No. Con sólo el Web AP que ejecuto en mi escritorio, puedo seguir adelante o en Deeble Más bien, puedo seguir adelante y ejecutar esta aplicación directamente desde mi escritorio. Por lo que se está ejecutando de forma nativa en mi escritorio. No, ya no es el er de un bro arriba. Lo que teníamos en nuestro proyecto fue el expediente manifiesto. Entonces creo que doy una escuela de imágenes de orientación corta y lo encuentro Manifiesto que Jason. Entonces con esto, en realidad podemos modificar el look y sentir fuera de la ventana cuando tengamos el arriba instalado. De acuerdo, así que usando el manifiesto, no Jason finalmente puede representar, como el color pero crecido, el color de la ventana, ese tipo de cosas, todo eso. Es posible desde este archivo, bien, así que puedo seguir adelante e iniciar sesión. Entonces eso significaría en las librerías. Vamos, mi contraseña predeterminada, y luego volverá a hacerlo. Y luego ves registro de jamón siendo así En realidad, esto es casi como un pequeño sandbox de navegador sandbox porque, ya ves, sigue comportándose como se comportaría Oak Room, preguntando si quiero ver la contraseña. Sí, puedo dar click. Guardar Sí, quiero activar la sincronización y lo que sea, así que es como un sandbox de Broza. Pero la realidad es que no casi se está ejecutando como una aplicación de escritorio. Por lo que blazer es como una manera fresca. No a reconstruir. Incluso tus formularios de Windows no son esto. Las aplicaciones son las aplicaciones que tienen que ejecutarse casi de forma nativa en un dispositivo, Pero realmente no quieres ir y construir un up nativo. Simplemente puedes usar blazer toe construir una aplicación Web progresiva que se puede instalar casi en cualquier lugar en hacer las cosas regulares en. Recuerda que esto no es hablar directamente con la A P I. No es confiar en ningún servidor en el medio. No es depender de mi máquina realmente en que pueda. Es literalmente simplemente ir a través de Internet al FBI, ya sabes, teóricamente hablando, ir a través de la red al FBI en hacer todo en tiempo real. Pero es una aplicación de escritorio. Si echamos un vistazo a los elementos de inspección , directamente puede ir a inspeccionar. Entiendo el elemento inspect arriba justo de la misma manera que veo todo fuera de los registros que suceden. Puedo ver toda la fuente en la que puedo mirar la red. Entonces hice red y me acabo de referir a la página solo para ver todo el recurso está regresando sobre papá. En un momento determinado intentaba hacer alusión a los alelos D que se estaban cargando. Entonces si bien está en forma más, seguro, no es prestarle a los concesionarios. Se los carga en el sobre la máquina. Todo el documento corre tiempo y todo apagado, la independencia de la biblioteca está ahí. Ahí están el trato es los paquetes. Ahí hay blazer, herramientas, archivo de entrada, clasificación local. Todos fuera de ellos que hubiéramos estado incluyendo sobre usar en nuestro proyecto. Hay Get load on instalado con el paquete real que es esta aplicación. Ahora, dicho eso, quieres ser muy cuidadoso y particular con tus modelos de hosting. Yo he aludido dedo del pie, ya sabes, cada uno teniendo su propósito en situaciones específicas. En una situación como esta, probablemente no quieras ir a muchas cosas. Entonces al hacer la aplicación alojada en el servidor, tienes la opción de tipo abstracto. Mucha de estas dependencias u otra dependencia más grave está en. Tenlas en el servidor en lugar de cargarlas en la máquina de clientes donde estás haciendo un ensamblado recto. Entonces no tienes más remedio que cargar todo en la máquina cliente como ves aquí, para que sepas que puede escoger y elegir y rechazar. Pero en este punto, has creado tus primeros estos. Creo que es tu primera, pero tu primera aplicación Web progresiva Blazer. 65. Revisar y añadir cambios a GitHub: Bienvenidos de nuevo, chicos. Dónde están los puntos donde solo vamos a hacer una revisión rápida fuera Todas las cosas recuperadas en este modelo encendido, luego checar en nuestra cancha para levantarnos. Ahora, lo primero que hicimos fue explorar las opciones fuera del ensamble Blazer Web on. Fuimos con el ensamblado Web, no core alojado en opciones progresivas de aplicación Web. Tampoco elegimos la autenticación. No, Una vez que hicimos eso, conseguimos un proyecto que fue muy similar a nuestras creencias. Un proyecto de servidor en. Yo solo estoy colapsando todo para que puedas ver la estructura como waas. Entonces nos dieron páginas. Tenemos un programa, no ver un inicio de nieve sobre CS andi simplemente colapsar todo en expandirnos. Estos dos, por lo que podemos comparar mientras teníamos que hacer realmente fue traer sobre la mayoría de nuestros cored nombraron los contratos, los modelos, las páginas y seguirían. Ya están construidos los componentes. El estado del FBI fuera de las cosas del proveedor estatal, nuestros servicios, los archivos compartidos, la estática tan literalmente. Todo lo que trato de decir es que la mayoría fuera de nuestra cancha desde la aplicación del servidor era reutilizable en los clientes o versiones de ensamblado Web así que en el núcleo, el cuerpo gimió. El servidor y las plantillas de ensamblado Web son muy, muy similares en términos fuera de la cancha requeridas para conseguir abierto corriendo ciertas diferencias. A pesar de que el ensamblado Web utiliza un problema tp cliente, eso para mí es simplemente mucho más fácil en mi necesidad de verificar doble si realmente está disponible en la versión en el servidor. Pero los clientes de CTP aquí la mayoría de los ejemplos creo que un señalado mostraría usando los clientes del PIB directamente desde la vista. Solo estoy haciendo tus llamadas. Pero construimos nuestros repositorios para sobrellamadas para que no tengamos que,ya sabes, dar vueltas a ya sabes, un cliente cada vez. Acabamos de hacerlo una vez. Ponemos eso dentro de cuatro repositorio Biest en lo que hicimos fue re factor o se supone que ella usara los clientes http en lugar de la fábrica de clientes http que teníamos en la persona del servidor sobre lo que hicimos fue simplemente poner nuestro token de cerveza en luego hacer o llamadas. Por lo que esta biblioteca ha posado como Jason lleva un canto get de Jason en dso a la derecha, Así que esto maneja la de serialización y serialización fuera de la caja. No tuvimos que hacer mucho más que simplemente llamar a esa función en Obtener la respuesta. Está bien. Otro factoring incluido sobre re acarrear fuera del procedimiento de subida Así que en realidad tenemos que modificar más de 80 I proyecto donde incluimos la capacidad de cargas en el lado A P I para que pudiéramos facilitar el hecho de que esta versión de ensamblado web fuera de nuestro proyecto no tiene un servidor para almacenar grasas. Entonces acabamos de darle la vuelta que un p. Esa ciudad entera aparezca en ese servidor para almacenar archivos. Está bien, así que ahora solo vamos a seguir adelante y click derecho y pollo. Entonces vas a estar obteniendo experiencia del FBI, experiencia blazer de servidor así como ensamble web, un blazer con sencillamente experiencia, ¿ verdad? Y sólo vamos adelante en los commits, acuerdo? Y puse en mi mensaje que agregué Blazer, Ensamblaje web en archivo subir toe 80 controlador ibooks. Y luego me comprometo todo y me hundiré una vez que eso sea exitoso. Bueno, siempre puedes venir a mi repositorio y hacer referencia. Entonces todo lo que se ha hecho 66. Migrar proyecto al . NET 5 5 5: Hey chicos, en este video vamos a discutir cómo actualizar y conseguirlo cinco o incluso instalarlo si nunca has instalado ningún framework dominante en absoluto. So.net cinco es todo abarcador y en realidad es retrocompatible con un montón de cosas que tendrías en tu aplicación ASP.Net o tu detonate core 3.1. No obstante, si sí deseas a mi pactado a.net cinco, entonces este video es para ti. Por lo que nuestro viaje comienza con una simple búsqueda de Google para.net cinco, podemos seguir el primer enlace y luego eso nos llevará a una era en la que bien descargaríamos el SDK o el runtime o bullet. Realmente no hay limitación en cuál deberías. Por lo que instalarías el SDK para que Visual Studio te brinde todas las herramientas que necesitas para poder crear una aplicación cinco dominante, mientras que el tiempo de ejecución es más establece bibliotecas para que puedas hospedar la aplicación como en iOS. Por lo que puedes comprobar en mi otro video sobre hosting dominar aplicaciones core. Y los pasos que debes seguir para instalar el tiempo de ejecución, preparar ojos y publicar tu aplicación. Entonces para el SDK, queremos descargar la versión apropiada y decir si estás en Mac, Linux, Windows, tienen un paquete de instalación para ti. Para que puedas seguir adelante y hacer clic en el que corresponda. Iré con el x 64. Y una vez completada esta descarga, obtendrás este instalador, lo que te permite simplemente seguir adelante y hacer clic en Instalar. Se pasa por cualquier puesto de control de seguridad F2. Y es un proceso bastante rápido, directo, por lo que te avisará y fue exitoso. Si no tuvo éxito, probablemente querrás volver a comprobar morir. Tienes la versión de McArg y son alcanzables al soporte técnico de Microsoft. De cualquier manera, si tienes la pantalla de seda, entonces estás un paso más cerca. De nuevo, adelante y haga clic en Cerrar. Y luego si vas a estar creando nuestro nuevo proyecto, entonces puedes seguir adelante y lanzar Visual Studio. Haga clic en Crear Proyecto 2-0 plantillas y vayamos con una aplicación web núcleo. Haga clic en Siguiente, dele un nombre. Entonces esto es solo una muestra, así que no seré demasiado formal con nada mojado y haga clic en Crear. Y luego en esta pantalla se podría seleccionar dot nec core 5 de la lista. Si estás sin embargo, intención de migrar API core dominante o proyecto blazer a.net cinco, entonces vamos a estar haciendo esto con este proyecto. Por lo que tengo aquí un proyecto existente. Tiene la librería cuando se llama librería API por completo, lo que es tiene una API de librería, TAS, librería wi, que es el servidor blazer. Y también tenemos un proyecto de blazer Web Assembly aquí. Por lo que en realidad he hecho mucho del trabajo. Lo que voy a hacer es sacar a la luz la versión dominate core 3.1 existente del código. Y el código relevante cambia para que puedas ver exactamente dónde deben realizarse tus cambios. Entonces, empecemos con nuestra API. Entonces solo voy a escribir tickets, bajar a mi pestaña de control de fuentes y comparar con la versión anterior antes de realizar todas las modificaciones. Y solo te acompañaré por todas las partes más importantes. En realidad, sólo hay una parte muy, muy importante en este archivo, y ese es el marco objetivo. Entonces si estás usando dominate core 3.1, eso es lo que estarías viendo, qué es esto, qué necesitas ver. Entonces a la izquierda está el existente y a la derecha está el nuevo. De acuerdo, entonces necesitamos cambiar eso a 5 neto. Entonces solo puedes decir que ni siquiera sigue adelante y ahorra. Y luego después de hacer ese ajuste, necesitas actualizar todo tu proyecto o Aldi o biblioteca de Francia por ejemplo. Entonces por eso ves algunos de ellos en rojo porque ya hubiera hecho esa actualización. Algunas de ellas no he hecho la actualización, así que te voy a guiar por eso uno por uno. Por lo que Candace, haga clic derecho, vaya a nuevo get manager de paquetes. Y lo que me pasó fue que cuando seleccioné todos los paquetes y luego envié actualizaciones, obtuve alguna forma de arable y no el objeto de excepción, centro de referencia no están del todo seguros por qué estoy recibiendo ese libro. El consenso parece ser que cuando a veces cuando tratabas de hacerlo a granel, podrías obtener el error. Esa fue mi experiencia que estoy compartiendo con ustedes en caso de que tengan esa lucha. Pero lo que ha funcionado para mí es que si solo selecciono como tres a la vez y luego hago clic en actualizar, entonces el Gestor de Paquetes se hará cargo y se lo hará a esos cualquier error, por supuesto que tengo que aceptar una o dos veces esos errores que puedas ignorar esos. Esos son solo errores de construcción asociados a todo el ejercicio. Pero mi punto es que solo querías asegurarte de que todos sus paquetes no estén actualizados a 5. Por lo que solo puedes seguir adelante y hacerlos individualmente si tienes que hacerlo, si el si funciona toda la actualización a granel, así que entonces eso es perfecto. Entonces no, los he completado todos. Si vuelvo atrás y miro las difusamente aún más actualizaciones, ¿no? Entonces cualquier cosa que fuera uno viendo 3.1 es no ver cinco ninguna versión anterior es ninguna C en la última versión. Entonces eso es lo que quieres hacer para actualizar tu proyecto API. No hay nada más que eso. Entonces sepan que hemos terminado con eso. Pasemos a nuestros retrasos, nuestros proyectos, no, los proyectos blazer tienen mucho en común. Una vez más, este es un servidor, éste es un Web Assembly. Tienen mucho en común en cuanto a lo que los cambios son tan raros, hay elementos comunes. Yo les mostraré una especie de lado a lado. Por lo que puedes ver que lo haces en ambos son los difusos correspondientes y ambos. Y hay ciertas cosas que sólo lo haremos para el ensamblado web. Por lo que nuestro primer cambio tiene que ver con el archivo host en el servidor versus el archivo índice en el Web Assembly. Y yo solo, solo para nuestros amigos, en el proyecto de servidor vas a dos páginas y luego verás el archivo CSS de punto host en el proyecto de Asamblea Web para ir a www root y ves tu archivo index.html. Entonces en el archivo host, los grandes cambios que vas a estar agregando, este bit de código, esta línea de citas aquí, agregando una nueva hoja de estilos. De acuerdo, y lo que estás viendo es el meme de la asamblea. Entonces esto debería ser en realidad un guión bajo porque ese es mi nombre de ensamble. Por lo que empieza guión, qué guión bajo. Entonces déjame sólo a mí en eso. Y así ves que es algo bueno pasar por esto juntos. Por lo que este subrayado y guardar. Está bien, así que así se ve esa línea y hazla un poco más grande. Entonces estamos agregando link, HRF, librería UI, librería subrayado UI o lo que sea que sus ensamblajes nim es algunos líquidos agradables molesto Nombre de montaje es solo para mirar la bandera del espacio de nombres aquí arriba. Y luego verás cuál es el nombre adecuado de la solución aceptada. Y luego decimos un punto styles.css, y luego agregamos la fila igual a hoja de estilo. Entonces vamos a estar agregando eso dentro de nuestra sección de cabecera para nuestros anfitriones. ¿ Está bien? Y entonces vamos a estar haciendo algo similar para nuestro índice. Por lo tanto, permítanme sólo sacar el índice de manera individual. Entonces vamos a estar agregando esta línea de código aquí. Y es el mismo principio. Voy a cambiar esto para subrayar. Por lo que es librería en un puntaje Watson o como sea el nombre de tu proyecto, no styles.css. Si bien están aquí, puedes esto yo, este cambio también. Entonces déjame ir casillas él exactamente lo que estamos cambiando, donde está cambiando esto de hasta el div con ID arriba. De acuerdo, así que en lugar de ver una etiqueta nombrada, decimos div con una identificación arriba, y luego el contenido sigue siendo el mismo. Por lo que solo puedes seguir adelante y cumplir con ese cambio en tu archivo de índice. El siguiente cambio importante viene en nuestras importaciones fósiles las nuestras, servidores espectivos y proyectos de ensamblaje web ambos tienen áreas de punto de importación o archivo, y la inclusión es la misma. Por lo que podrías obtener un error en la sangre del servidor, entonces tienes que ser un componente lagrimal para poder deshacerte de él. Pero queremos tener usando Microsoft dot ASP.NET Core.com dot web dot virtualización y tratamos de colocarlo en una posición similar a donde lo tengo, que está debajo de donde, pero antes del HTTP, por lo que alguien puntee HTTP, bien, y eso sería para nuestro Asamblea Web, para el servidor, va en el mismo lugar. O al menos bajo Web, porque probablemente no tendrías la biblioteca HTTP de Asamblea Web. Por lo que solo lo tienes debajo del oscuro día web y solo agrega virtualización de puntos. A continuación está nuestro principal Leodes, el componente Reserva. Por lo que ese cambio se aplica a ambos. Entonces no les voy a mostrar a los dos. Se trata de un cambio CMNH tanto en servidor como en ensamblado web donde solo queremos incluir un nuevo div. Y vamos a darle esa clase igual a velocidades. Y luego todo el contenido que había antes. Entonces este es el origen aquí afuera. Sólo vamos a tomar todo eso y ponerlo dentro de un extranjero tú div. Entonces se va a ver algo más parecido a esto a la derecha. Y déjame ver si puedo reducir la izquierda. Ahí va. Entonces eso es lo que tu nuevo significa, LEO, que va a verse como si se trata de Web Assembly o de servidor. Ahora otra tarea importante es que vamos a estar agregando un archivo CSS a ese mismo componente que acabamos de modificar, ¿verdad? Y hay una página de clase que acabamos de introducir, el contenido para este archivo CSS. Lo encontrarás en los recursos. O simplemente puedes ir al repositorio y mirar el contenido del archivo que podemos copiar y pegar. No haber hecho ninguna modificación fuera del valor predeterminado que hubiera venido con.net 5B es un proyecto, pero así es como se ve el archivo. Entonces en lugar de que trate de mostrarte sake y escribirlo, solo puedes ir al recurso y meterte en ti mismo. Las partes principales de la misma sin embargo, es que vamos a estar agregándolo a la playera. Por lo que vas a ir a compartir, click derecho, click en agregar. Y esto va tanto para servidor como para un ensamblado web. Estamos agregando un nuevo artículo. Y entonces el nombre que le estás dando a estos nuevo artículo es el mismo nombre que un componente significa Leodes, Dr. maquinilla de afeitar. Entonces eso es principalmente viejo punto razor dot css. Y luego si notas en mi explorador de soluciones, realidad ves que aparece en el medio Leodes. De acuerdo, así que te sientas cerca y acabo de añadirlo. Una vez que hagamos eso entonces va a venir realmente como un subarchivo de las Leodes principales. Y entonces podemos simplemente poner en el contenido una vez más, eso se aplica tanto para servidor como web impresionante. Sin windows CMV, y vamos a estar haciendo algo similar para el menú nav. Entonces tenemos nav menu dot razor, y una vez más para servidor y ensamble web, tenemos nav menu.html, o vamos a estar agregando suficiente menu dot, dot CSS. Una vez más, puedes seguir adelante y copiar el CSS resultante o el CSS religioso más bien. Y doctorado en. No tienes que entrar e intentar escribir esto, solo tienes que conseguir el contenido y enchufarlo. No, bueno una actividad CSS más por completar, y eso será al archivo CSS app.js en el ensamblado web. Entonces en el proyecto Web Assembly, vas a www root CSS y luego uci dot CSS. En tus proyectos de servidor, irías a www root CSS y sitio dot CSS. No obstante, el contenido para ambas cosas sigue siendo la costura. De acuerdo, así que esto es una vez más hace el default que vendría con.net cinco blazer proyecto. Pero como estamos actualizando, solo estamos tratando de movernos a través de todos los recursos que se necesitarían por defecto. Por lo que en realidad eso es todo para las actividades lado a lado tanto para el servidor como para el ensamblado web. Solo para retroceder un poco para el servidor, quieres asegurarte de que tu marco objetivo funcione. Entonces eso es para el servidor blazers, solo para que quede claro, su marco de destino donde necesita estar como dice Kelly, lo mismo que los marcos de destino de API web. Y así que en realidad puedes simplemente copiar eso desde la API web, un proyecto, y asegurarte de que tu blazer, lo siento, o blazer server UI Project también diga target framework net 5. Entonces voy hasta enfocarme un poco en los proyectos de servidor. Entonces lo que voy a hacer es descargar esto para que vea menos flechas. Y solo quería asegurarme de que estoy tratando sólo con el proyecto de servidor. Probablemente no tengas que hacer esta parte, pero el mismo viendo los errores. Y quieres asegurarte de que estás aislando las actividades de tus proyectos de servidor, entonces puedes hacerlo. Entonces solo voy a hacer una construcción solo para ver qué pasa. Está bien, así que ven aquí estoy recibiendo algunos errores de embarcaciones, mis proyectos para que pueda ir a nuevo get. Y luego veo que tengo algunas actualizaciones que reciben. La función de actualización a granel funcionará para mí. Y lo hizo. Entonces déjame intentar construir de nuevo. No, sigo recibiendo algunos errores aquí. Y eso en realidad se debe a un problema de ambigüedad. Por lo que este error está diciendo que el archivo de entrada de la función son el toggle o componente. Más bien, el archivo de entrada es ambiguo porque tengo una biblioteca llamada archivo de entrada blazer. Y hay uno que viene incorporado con blazer al menos a la derecha. Saber que hay. Entonces ese es su tema de ambigüedad. Yo sólo voy a comentar esta vieja porque si no estás usando archivo de entrada, entonces no tienes este problema. No obstante, haré otro video donde refactorice el código que rodea a Blizzard, o en realidad es sólo entrar en encontrar todas las referencias a ese archivo de entrada y simplemente seguir adelante y comentarlas para deshacerse de cualquier errores solo para asegurarnos de que no tengamos nada más. Entonces vemos que una construcción tuvo éxito. Entonces eso es bueno. Tan viejo triste fuera de esta ambigüedad que probablemente es única de cumplir. De todos modos. Si no lo es, entonces trabajaremos más adelante. No hay problema. Correcto. Y todo lo que hemos actualizado nuestra aplicación de servidor blazers a.net cinco. Ahora voy a cambiar a la asamblea web. Por lo que sólo voy a recargar el proyecto de Asamblea Web. Y fui a descargar el proyecto del servidor solo para asegurarme de que solo estamos mirando una cosa. Y luego el primer cambio importante, voy a señalar todo lo que tiene que ver con el archivo del proyecto. Entonces si comparo esto con el original, les voy a mostrar los cambios que nos encontramos. Entonces uno, cambiamos el SDK del proyecto de Microsoft.NET dot dk dot web a Microsoft.NET dot SDK dot blazer Web Assembly. Otra cosa es que eliminamos estas dos referencias marco objetivo en. Cambiamos todo es a solo net 5. Está bien. Y luego vamos a continuar con la actualización de referencias de semáforo. Entonces otra cosa es que quitamos esta referencia de bolsillo para que un cubo o amigos de componentes que fueron por simplemente adoptar construidos, acabamos de quitarlo. Entonces eso es nulo falta en la nueva Versión. Ahora en este punto, siéntete libre de intentar y D2 aún no están del todo hechos, pero querías ir a administrar paquetes y ver si puedes ejecutar una actualización para todo. Entonces intentemos eso. Y eso se hace, bien. Y luego queremos ir a nuestro program.cs. Alguien ha comparado éste para que podamos ver exactamente las líneas que hay que modificar. Entonces la primera línea es que vamos a estar actualizando esta referencia a hub, un hashtag frente a él. Verlo, eso es realmente todo lo que hicimos. Dijo constructor, componentes groseros que suman. Y luego entre comillas arriba, solo estamos sumando hashtags. De acuerdo, la división en lo que es un signo de libra o un signo de número o hashtag delante de la palabra arriba. El otro cambio es que estamos cambiando. Bueno, ya teníamos si ya tenías esto como alcance extraño, entonces eso está bien. Algunas personas usan un transitorio, pero la forma recomendada sería alcanzada. De acuerdo, así que desea agregar alcance su cliente HTTP. Y la única razón por la que está mostrando toda la línea resaltada, porque un fix algún espaciado o asado vivo. Pero esencialmente ese es el cambio mayor aquí, estar seguro de que eso dice en la escuela. Pero después de hacer todo esto, podemos hacer una compilación y ver si tenemos algún error. Y el error que estoy obteniendo es la misma área que tuvimos con este servidor. Entonces solo voy a comentar estos viejos por nulo solo para asegurarnos de que podamos reportar una migración limpia. bien ojos, así que si hago una construcción y luego veo un proyecto exitoso, así que casi haciendo para recargar los otros proyectos. hace clic derecho recargar, clic derecho volver a cargar, y luego hacer otra compilación y no tener errores que reportar. Entonces déjame solo hacer una carrera rápida solo para asegurarme de que todo funcione. Entonces lo que pasa es que tienes que asegurarte de que sean API ejecución y tu y tus clientes. Entonces quiero decir, todos empiezan en un if en caso de que no sepas cómo hacerlo, solo tienes que hacer clic derecho. Haremos propiedades y solo asegurarnos de que todas estén en arranques. Al menos si eres un proyecto bucles eso en mente. Si lo hicieras, si hubieras Sardinia Server hospedado blazer arriba y probablemente no tengas ese problema. Entonces no estoy viendo mi lado y déjame solo seguir adelante e inspeccionar y ver cuál podría ser el problema. Y aquí estoy viendo que soy un error 404, por lo que está fallando en cargar el recurso o el archivo CSS que agregué. De acuerdo, así que solo sospecho que tal vez debería haber usado un guión, debería enviar un marcador de Fonda. Entonces déjame solo doblar y comprobar. Entonces de vuelta aquí sólo voy a mí, eso son ajustes. Entonces sólo voy a probar el guión en lugar del guión bajo. Y todo lo que queremos hacer es, y esto son mis topologías de hombre en nuestra varonil todo para querer poner nuestra barra lateral dentro de nuestros doctorados. Así que salta ese paso. Eludido a ella porque de todo el fuego era de todo. Pero nuestra barra lateral también debe estar dentro de esta página div. Entonces sigamos adelante y reiniciemos. Y eso se parece más. Entonces ahí vamos, ahí tenemos nuestra aplicación blazer UI siendo renderizada. Este hecho mientras se estaba renderizando inicialmente, pero hicimos bastantes cosas, así que sabemos al menos sabemos dónde se ejecuta en.net cinco. Bueno, eso es todo para este video. Ten una buena. 67. Arx la carga del archivo de archivos: Remove BlazoredInputFile: Oigan chicos, bienvenidos de nuevo. Ahora saliendo de los talones de nosotros actualizamos nuestro blase o aplicaciones que.net cinco, tuvimos algunos problemas con nuestros campos de entrada, así que vamos a simplemente poner eso a la cama. Entonces lo que pasa es que inicialmente tuvimos que confiar en una solución de terceros para facilitar la carga de archivos. Pero desde entonces Glaser ha implementado un control de entrada más nativo, y así vamos a empezar a usar eso. Entonces el primer orden del día, y te voy a mostrar los cambios lado a lado tanto con el servidor blazer arriba como el ensamblado web porque el código se verá más o menos igual entre los dos con unos pocos modificaciones aquí y allá. Por lo que lo primero que queríamos hacer en ambos archivos de importación es quitar la referencia a la entrada blazer rápido para que solo podamos seguir adelante y hacer clic en él y eliminarlo y guardar, y luego puedes ir a tu creación. Entonces tengo un montón de abiertos aquí, así que voy a tratar de reducirlo a los que absolutamente necesitamos para este ejercicio. Entonces lo que queremos hacer es volver a nuestra creación y podemos descomentar a ese león. Por lo que he hecho parte del trabajo. Simplemente estaré paseándonos a través de lo que necesitas hacer, ¿verdad? Por lo que puede seguir adelante y descomentar esta línea de entrada. En realidad me tomó un poco más fácil. Yo sólo voy a sacar esa vista de comparación que usamos cuando estamos haciendo nuestra cuadrícula para que puedan ver exactamente las líneas que estoy cambiando. Por lo que descomentamos esta línea de control de entrada. Y luego tenemos que ver, y algunos son para tipos de datos. Por lo que inicialmente estábamos usando la entrada de lista de archivos IFF. Y llamamos a ese archivo conservará ese nombre, pero lo llamaremos cejas son archivos. Entonces ese es un nuevo tipo de datos. Tampoco estaban usando libro de flujo de memoria simplemente transmitir. Muy bien, para que puedas seguir adelante y cumplir con esos dos cambios en los tipos de datos. Ahora moviéndonos por dentro de la parte donde habríamos hecho todo el procesamiento. Entonces este es el mango crear nuestro, déjame, déjame hacerlo en el flujo exacto. Entonces se trata de cientos de selección de archivos, que es el evento que se llama cuando se cambia el archivo de entrada, ¿verdad? Por lo que manejamos la selección. Por lo que queremos cambiar ese parámetro una vez más de la entrada de lista IFIs IRI a los arcos de eventos de cambio de archivo de entrada. Y yo solo llamo a ese E. Muy bien, así que eso se parece un poco más a si ganaras formas o habría si eso es lo que ves para los eventos, ¿ verdad? Por lo que E va a encarnar el archivo o archivos o el objeto con los archivos que han sido seleccionados por nuestro selector de entrada. Simplemente denotar también podríamos poner en múltiplo aquí si quisiéramos Tableau para selección múltiple, así es como simplemente adjuntaríamos ese atributo ahí, múltiplo. En esta situación, sólo queremos uno. Entonces solo estaba haciendo ese punto porque E, usando esa E o usando ese objeto, podemos conseguir múltiples archivos solo para ver, ya sabes, una vez que hayamos hecho ese cambio para, ya sabes, el archivo principal B igual al archivo E dot? No, podría haber dicho E dot y conseguir múltiples archivos lo que me permite decir cuántos archivos, hasta diez. Nuestro pozo, hasta el número que pueda conseguir, ¿verdad? Entonces creo que por defecto serán diez, pero podría especificar dos, podría especificar uno. De verdad depende de mí, el desarrollador, pero no puedo conseguir múltiples archivos. Pero en esta situación sólo quiero un archivo, así que es archivo E dot. Y luego sí presenté esta declaración if previamente, así que me aseguré de tenerla todas partes donde en lugar de comprobar el nombre completo para la extensión, en realidad estoy obteniendo las extensiones de nuestra extensión es igual a la ruta, pero sin embargo la extensión un nombre de archivo. Y luego comprobamos si la extensión coincide con lo que quieres. Y después de hacer eso, queríamos entonces inicializar nuestros flujos. Por lo que inicialmente teníamos que ser archivo MS es igual a nu memory stream y luego copiamos en el flujo de memoria. Bueno, no, sólo podemos ver el archivo MS es igual a file.js open read Street. Y así acabamos de leer el archivo directamente en nuestro objeto stream. No. Algunas cosas adicionales y en realidad encontraron esto bastante útil. Lo que podemos hacer aquí es simplemente cambiar el tamaño de nuestros archivos. Entonces déjame solo reducir el viejo código y mostrarte lo que he introducido aquí. Entonces, ya sabes, estamos mostrando una vista previa del archivo. Y cuanto más grande es el archivo en cualquier situación, menos eficientemente es que carga, es manejado por una aplicación. Entonces lo que hacemos aquí es simplemente cambiar el tamaño de los archivos. Por lo que decimos archivo de imagen redimensionada es igual a y esperamos file.js solicitud de archivo de imagen una sincronización. Especificamos el tipo de archivo que queremos. Y entonces sólo decimos el tamaño. Entonces en este momento solo estoy redimensionando cualquier archivo que se haya subido A 100 por 100 pixel file. Y luego después de eso, lo cargamos en un buffer. Por lo que decimos búferes var iguales a nueva matriz de bytes con el tamaño de punto del archivo de imagen redimensionada. Por lo que es una matriz de byte al tamaño de nuestra nueva imagen redimensionada. Y luego esperamos el punto de imagen redimensionada abrió el flujo de archivos o abrió el flujo, leyó y leyó en el buffer. Entonces aquí es donde lo copiamos en la matriz de bytes y luego convertimos a los datos base-64, y luego tenemos la misma URL de imagen. De acuerdo, así que esto es bastante útil si quieres cambiar el tamaño de tus imágenes entre medias. Bastante fácil. De acuerdo, así que eso es todo por cómo manejamos la fascinación. Porque recuerda la selección de archivos solo muestra la vista previa del archivo. Sé que mirar lo que hacemos cuando estamos manejando el envío del formulario real. Y el cambio aquí es realmente poco cambio cosmético. Entonces he refactorizado un poco nuestro servicio de subida de archivos, donde tengo una función o método, mismo nombre, pero eliminé la dependencia del archivo. En retrospectiva, no usamos el archivo y pasamos al Cargar Archivo. Lo que tengo es un objeto stream y nuestro nombre para nuestra imagen. Entonces déjame saltar por ahí y mostrarte los cambios que se han hecho. Por lo que dentro de nuestro ojo archivo subir contrato. Entonces voy a empezar otra vez con la interfaz como calor que se agrega un poco de limpieza porque agregar más de un método hace fuera del refactor que hicimos antes. Pero siempre es bueno eliminar código antiguo, sobre todo si estás usando el control fuente porque de todos modos tienes el historial de versionado. Por lo que eliminé el viejo código y sé cómo este nuevo método, que es tarea pública archivo de carga. Nos lleva parámetro stream y un nombre de cadena. Y así para la implementación real de esto, permítanme simplemente ir y comparar. Bueno, probablemente no hace, ya que me he ido burócratas como casi un nuevo método. Pero pasémoslo de todos modos. Entonces esta es una Async Task tomando este árbol y llamar archivo MS y un nombre de cadena, eliminamos muchas otras cosas. Por lo que probablemente necesito poner comprado ese bloque try-catch. Puedes ponerlo ahí cuando estés haciendo esto, pero déjame solo reducir el viejo enfriado y enfocarme en el nuevo código. Entonces lo que hacemos, retengo ese buffer justo por que es rojo hasta una identificación de cajero. Y yo inicializo mi secuencia de archivos, ¿verdad? Entonces creo que, esa línea es casi la misma excepto que hice una declaración de uso ahí mismo y luego escribí en el flujo de memoria. Por lo tanto, renunciando a toda esa palabra, solo inicializando esto. Y entonces solo estoy viendo Wild por su rojo es igual a, esperaré archivo MS, que es mi stream dots read async buffer. Por lo que stream lee lo que esté contenido dentro del búfer. Y si bien eso no es igual a 0, una vez más, permítanme reducir esta secante, ver el cuadro de flauta. Entonces si bien por hilo es igual a, no sé dónde estamos golpeando? Leyendo los contenidos? Donde solo haciendo algunas matemáticas aquí, total o se está acumulando a los bytes leídos. Entonces sólo para que lo sepas, mientras está leyendo, solo es sumando. Y para todo ese periodo es solo escribir asincrónicamente o buffer ari. Está bien, y prácticamente eso es todo, ¿verdad? Eso maneja nuestra subida de archivos. Entonces ese es en realidad el código requerido para o crear en el, creo que ese era nuestro proyecto de servidor. ¿ Verdad? Entonces, solo echemos un vistazo rápido a lo que hacemos por nuestra Asamblea Web. Porque sabes lo que el Ensamblaje Web donde realmente subiendo al servidor, el servidor API en lugar de manejarlo localmente como lo estamos haciendo con un proyecto de servidor. Por lo que es más o menos lo mismo excepto OnCreate. Entonces lo siento, la selección de Honda es más o menos lo mismo donde haciendo lo mismo aquí estamos tomando el archivo de entrada y mostrándolo. Por lo que podrías literalmente simplemente copiar y pegar la selección del mango desde el servidor hasta el ensamblado web. Pero entonces para nuestro manejado crea, hacemos algo un poco diferente aquí, donde inicializo el buffer al tamaño del archivo real. Muy bien, entonces lo abrimos y luego enviamos la barra de herramientas como una cadena base 64. Está bien, así que esa es la única diferencia. Por lo que sólo cuatro contextos poco más que pueden traer las comparaciones. Pueden ver exactamente qué son, al menos ver qué había antes. Entonces haremos los mismos cambios de tipo de datos, ¿verdad? Pero entonces no oigan todo lo que hicimos fue convertir el archivo MS o nuestra calle de memoria hasta IRI it, eso es todo lo que hicimos. Entonces estamos agregando dos líneas más o estamos inicializando este Bytes, lo siento, y luego leyendo el contenido de los archivos en la batería. Entonces lo estamos convirtiendo a los básicos dibujados, Y eso es todo. Todo lo demás, una vez más, es bastante similar al servidor. Para nuestra edición. No muy diferente. Una vez más, es más o menos lo mismo. Entonces, una vez que tengas esos cambios, puedes seguir adelante y probarlo por ti mismo. Y ves que nuestra subida de archivos no está funcionando. 68. Código y configuración esenciales: Hey chicos, bienvenidos de nuevo. Por lo que en este módulo queremos desplegar realmente nuestra aplicación en el Azi, su nube. Entonces estoy usando como ahí porque son solo las hazañas antinaturales. Visual Studio ya está sintonizado para la implementación de Azure. Y bueno, todo es Microsoft. Todo funcionará perfectamente. Puede haber algunos hipo en el camino, pero cualquier hipo que nos encontremos, Asegúrate de pasarte por qué se encuentran con ellos y cómo conseguimos los nuestros propios. Pero antes de empezar a buscar 0, tenemos que mirar a nuestro código porque hay algunos cambios de configuración en archivo esencial, cambios que necesitamos hacer para asegurarnos de que tengamos una transición fluida. Entonces mientras estamos grabando en nuestra máquina, fue casi lo suficientemente bien como para codificar algunas de estas macetas. Pero el problema es que estos bots no existen en otro servidor. No hay usuarios de ver y esa estructura de carpetas dondequiera que vamos a estar desplegando nuestra aplicación. Entonces quiero hacer es hacerlo un poco más dinámica. Entonces este archivo en particular que tengo abierto es para las API de librería, el archivo del proyecto real. Por lo que solo puedes hacer doble clic en el archivo del proyecto. Conseguirías este XML. Y entonces lo que queremos hacer es poner en un nuevo nodo, el grupo de propiedades. Queríamos decir generar archivo de documentación, true. Muy bien, entonces en eso, y luego necesitamos cambiar la ruta real del archivo de documentación. Entonces lo que voy a hacer es quitar todo hasta que el nombre real o el lodo pueda permitirse un nombre de archivo. Y luego fui a reemplazarlo por bin. A continuación, barra el signo de dólar, abre la configuración de paréntesis y luego cierra el paréntesis. Por lo que esto lo haría más dinámico y en realidad lo dirá enero, este archivo en la carpeta bin. Por lo que la carpeta bin es básicamente universal a cualquier extraño que nuestra aplicación. Entonces a mí y ese cambio para evitar cualquier conflicto en el servidor Azara cuando empieza a ver oh, qué es que no sé dónde poner el archivo porque me dicen que pongamos el archivo no existe. Por lo que esto va a pasar por alto todo eso. El siguiente cambio importante sería al archivo n log config. Y es una situación similar aquí donde habríamos codificado duro, estamos, queríamos que los archivos apuntaran. Entonces en cambio, voy a configurar todo esto para que sea el directorio base. Entonces literalmente va a leer signo de dólar BCE, querida. De acuerdo, y entonces, bueno, necesito tener mi carpeta logs slash logs slush. Entonces lo que va a pasar es que nuestro n log lo haría directamente a nuestra carpeta logs que existirá en nuestra solución. Queremos hacer lo mismo para el registro interno. No quiero que eso nunca termine en ninguna parte. Simplemente no lo quiero en la unidad C. Quería en el directorio base únicamente y solo tener una carpeta de lotes AHORA tanto con registro interno como con el registro diario de actividad. Entonces ahora podemos pasar a nuestros archivos blazer y todas las configuraciones aquí no son tanto. Es solo que realmente, realmente, realmente nos gustaría que el archivo endpoints fuera un poco más dinámico porque retinal y yo he codificado duro el BaseURL, que para fines de desarrollo estaba perfectamente bien. No obstante, cuando realmente implementemos, nuestra API, o API ya no se ubicará en esta ubicación. Esta ubicación sólo existe cuando nuestras API se ejecutan. Cuando está en la web, necesitamos la dirección para que podamos hacer que los BaseUrl sean relativos a esa dirección. Entonces lo que voy a presentar aquí es una declaración rápida si. Entonces va del hashtag de NYC if. Y luego estamos comprobando si está en modo de depuración, entonces sabemos que podemos usar esta URL base, ¿verdad? Si es debug, entonces eso está bien. Por lo demás, lo que significa que no está en modo de depuración y acabaré aquí. Entonces, y si es así, entonces podemos saber, introducir esta URLS, algo más aquí, no sé en qué va a estar porque aún no hemos implementado ni las API de librería. Pero queremos esto aquí para que cuando somos un barco para desplegar nuestros blazer ups, no tengamos mucho más que hacer sino simplemente rellenar el espacio en blanco con la dirección nula homestead para la API. Entonces solo voy a seguir adelante y hacer ese cambio para ambos proyectos de blazer. ¿ Verdad? Por lo que tenemos nuestro proyecto de ensamblado web buscando debug versus no la bombilla. Y entonces tenemos nuestro proyecto de servidor haciendo lo mismo. Y en nuestra librería, EPA ahora es un poco más dinámica con sus configuraciones. Entonces, cuando regresemos, iniciaremos el despliegue de nuestra API. 69. Crea la cuenta de Microsoft Azure: Hey chicos, en este video estaremos creando nuestro Microsoft como 0 conos. Como dije antes, podemos empezar de forma gratuita. Para llegar a estos sitios web, vamos a absorber dot Microsoft.com y luego supongo los caminos que según tu región o tu idioma. Pero así es como se ve el sitio web debería verse. Y se puede leer a través de él para ver exactamente qué 0 es todos los barcos. Se trata de ser futurista, permitir más colaboración, y operar de manera más fluida en un espacio cerrado, ¿verdad? Están por todo el mundo y normalmente solo elegirías la región que está más cercana a ti. Por lo que en realidad estoy en la región del Caribe. Entonces dice mi Joel, región está al este a nosotros o al este de Estados Unidos dos. Pero no por este video. Este video que apenas estamos creando las columnas no estaban sentados nada de razones por el momento. Y así para empezar, debilita esos. Bueno, si ya tienes una cuenta en vivo, entonces solo puedes seguir adelante e iniciar sesión con ese vivo de conos. Pero puedes simplemente hacer clic en Iniciar gratis. Y aquí te dicen que puedes crear un gratis han ido hoy y puedes empezar con 12 meses de servicios gratuitos. Entonces eso es un buen trato para mí. Y si te desplazas hacia abajo, ves 12 meses de servicios gratuitos, populares, gratuitos más crédito de 200 dólares que expirará en 30 días. Por lo que te dan $200 una puede crear máquinas virtuales V, nuevo, crear recursos en la nube y experimentar hasta que ese dinero sea o.Y eso es realmente sólo por un mes. Pero luego hay ciertos servicios que solo consigues de forma gratuita por el resto del año, y luego tendrás algunos otros servicios que siempre son gratuitos. Está bien, entonces lo que vamos a hacer es solo seguir adelante y dar clic en Iniciar gratis. Entonces nos pedirán que firmemos con nuestro vivo de conos. Si tienes una cuenta en vivo una vez más, él puede seguir adelante y usar eso. Si no tienes otro cono, entonces puedes seguir adelante y crear uno. Y esta es una opción muy reciente para iniciar sesión con GitHub. Entonces tengo un live a cone que uso, pero solo voy a pasearte por el create 1 primero. Conoce el ícono en vivo no necesariamente tiene que estar en vivo o en all.com. No tiene que ser una cuenta tradicional de Hotmail, puede ser una cuenta de Gmail. Por lo que realmente puedo usar la misma dirección de correo que utilicé para GitHub o direcciones de correo que uso cuando me estoy registrando para cosas que puedo usar eso ya sea Yahoo, Gmail, Hotmail, lo que sea. Y basta con dar click siguiente. Y aquí ya está, está diciendo que ya me ha ido un punto de Microsoft. Entonces eso hace esto conduciendo mi punto sin embargo, que una vez que tengas una dirección de correo electrónico, no tiene que ser un Hotmail o un tradicional barco AECOM vivo allí, creando así un Microsoft o Collins para ti con esa dirección de correo electrónico. Para que puedas seguir adelante e inscribirte. Es un proceso bastante sencillo. Ahora están Conda decidió que ya existían. Esa es una cuenta que estaba usando para inscribirme en el colon gratis. Entonces. En realidad solo seguí adelante y me metí y porque realmente no me conformé mucho más, creo que tu proceso de inscripción en realidad va a lucir muy similar a esto independientemente, así sucesivamente para superar el obstáculo de poner en tu dirección de correo electrónico y procediendo, entonces probablemente vas a terminar en una pantalla como esta donde te van a pedir tu información demográfica solo para su registro, manteniendo las energías de mi país en su Jamaica. Y le estoy citando mi número telefónico al que hago click Siguiente. Y luego dicen: ¿quieres verificar tu identidad por teléfono o la necesidad por tarjeta? O es que voy a elegir me lleva por teléfono y acabo de recibir el texto. No tardó en absoluto. Entonces solo voy a poner ese código y luego verificarlo. Ahora aquí la parte que podría disuadirte si no estás preparado para ello, querrán verificar tu identidad por tarjeta para que no te cobrarán a menos que actualices, lo significa que tienen diferente plan de suscripción de cláusula USTED, así que correcto. No, te estás registrando para el plan de suscripción gratuita. Una vez que se hagan esos suscripciones gratis en plan, entonces no podrás hacer mucho en la plataforma hasta que envíes nuestros nuevos subíndices en marca, lo que coincide con que las actualizaciones. Entonces como dije antes, hay p A medida que vas Y luego hay prueba de slash de dev paga-as-you-go, que es en la que estoy, que es como la mitad del precio de la normal PICU cool. Por lo que en realidad proporcioné la inflamación de mi tarjeta cuando me inscribí. Y habiendo hecho eso, puedes hacer click les hace click convenio si no tienes tarjeta o no te sientes cómodo con proporcionar los detalles de nuestra tarjeta entonces. Delicioso, y puedes parar aquí, está bien. Más adelante, cuando realmente estamos desplegando en Azure, aún puedes ver cómo será y ver lo beneficioso que es para ti. Qué, si lo deseas, entonces puedes seguir adelante y proporcionar tu información y luego dar click en el acuerdo y aceptar los términos del acuerdo y entonces estarías en la plataforma. Entonces solo voy a firmar en mis conos Rayleigh, podría citar sin comillas el cono Rayleigh, pero uno que uso y te muestre cómo se ve un 0. Bueno, en realidad acabo de escribir en Porto dot 0.com con la esperanza de que me pidieran que iniciara sesión, pero yo hice eso y simplemente reescribió y mus en parecer un cono que solo estaba instalando a George Williams en gmail.com. Entonces este tablero, así que este es el tablero en el nivel muy básico, tienen un panel a un lado aquí enumerando ODE. Bastantes servicios que puedes obtener. Pero entonces, porque no completamos el set de cuatro porque no completé el liquidado, al menos entonces cuando vaya a suscripciones, voy a ver que no tengo suscripción, ¿verdad? Entonces como voy a ver en la suscripción es cómo te califica como cliente con AARP a medida que vas empresa o lo que sea. Entonces si más tarde decidí que quería proporcionar mi información, solo puedo volver y dar clic en agregar. Y entonces eso me llevará a completar el procedimiento de registro donde realmente agrego la suscripción. Y así esta es una prueba gratuita de esa guerra sentada, solo debes saber que tienes apoyo para desarrolladores de pago por uso. Uzziah de bastantes de ellos. De acuerdo, así que probablemente iría con paga a medida que avanzas. Pero eso sí, todo esto está en el en los pasos de apuntarse a Azur, y eso es si deseas proceder con eso. Pero entonces para este desvío, de verdad y de verdad, solo quería que llegaras hasta el tablero de instrumentos para que puedas ver que este es un 0, parece que esto es lentamente portal de administración de cargas de trabajo. Puedes configurar tus máquinas virtuales. Pero para este curso, estaremos buscando servicios. 70. Deploy la tienda de libros de libro y la base de datos y la base de datos y: Muy bien chicos, bienvenidos de nuevo. Por lo que realmente vamos a desplegar nuestra herramienta de proyecto API web o alojamiento Azur. Entonces asumo que ya creaste tu cuenta. Necesitas simplemente ir haciendo clic derecho en el proyecto y luego verás publicar y se está esquivando. Ahí vamos publicar. Una vez que hizo clic en eso, si aún no estás registrado en Azure, por favor, adelante y haz eso. Entonces veremos aquí los objetivos. Entonces si quisiéramos publicar en nuestro servidor local elegiría sí o, ya sabes, elegir el que funcione de acuerdo a nuestra situación. De qué estoy facilitando un 0 aquí. Entonces como estás, hacemos click siguiente. Y luego queríamos en un App Service, ¿verdad? Por lo que seguimos adelante y hacemos clic en Siguiente. Es posible que se te pida que inicies sesión en este punto, si aún no estás conectado con tus conos son tu cuenta Microsoft. Pero en este punto, lo que queremos hacer es crear algunos ojos tus instancias. Entonces mi suscripción aquí es porque vas a prueba de dev y puede que no necesariamente tengas esa o puedes tener una diferente, pero como IZ obtiene acceso, entonces deberías estar bien. Entonces voy a seguir adelante y hacer clic en el signo más porque no tengo ningún recurso o grupo de recursos, o si tengo aquí algunos grupos de recursos de experimentos anteriores. Pero lo que voy a hacer es crear uno nuevo. Entonces esto va a ser Librería RG, ¿verdad? Entonces hago clic en Aceptar y luego me están pidiendo todas las plantas de vapor. Entonces voy a dar click nuevo y voy a elegir, me gusta usar East US, pero luego usas el que está más cercano a tu razón. Por lo que elijo East US dos, ese es el recomendado por mi razón, que es el Caribe. Y entonces mi talla va a ser gratis. Por lo que tienes gratis y tienes otros que tendrás que pagar. Entonces, ya sabes, para ser más rentable, solo vamos a elegir gratis para que podamos hacer bien esta operación, siempre se puede escalar, esa es la belleza de Azure y la ropa generalmente puede escalar siempre si es necesario. Entonces tenemos ese plan de hosting. Voy a llamar a esta librería API blazer plan. ¿ Todo bien? Y así sólo lo estoy renombrando. Realmente no tienes que hacer eso. Haz clic en Aceptar y luego haz clic en Crear, y luego en realidad tienes que dar eso en algún momento. Ahora una vez realizada esa operación, puedes seguir adelante y hacer clic en terminar. Y entonces se habría hecho el preliminar arreglado para nuestro paquete editorial. De acuerdo, así que vamos, sólo voy a guiarte a través de algunas cosas aquí y sí tenemos estas pequeñas precauciones y así que sí necesitamos simplemente revisar todo. Por lo que solo voy a dar clic en Editar en cualquier pensamiento publicado. Y lo que me está mostrando aquí es que va a crear un servidor o el servidor que es lo que acaba de crear para el servicio AP se llama que el nombre del sitio será Bookstore dash API. Entonces eso sería raro. Se desplegará el EPI. Yo probablemente, ya sabes, él puede probablemente clientes es un poco berlinés nombre plutoniano o algo así. Aunque no quieres duro también. El URL de destino será determinado por el nombre ST ish, ¿verdad? Para que puedas elegir las URL de destino, puedo decir. Librería, API, curso de guión. De acuerdo, entonces esa URL ahora será tomada por Asiria. Dios usó esa URL por lo menos hasta que yo inédito, mi corte son inéditos no disminuye tu actual. Está bien. Por lo que puedo decir librería API. Y voy a poner mi nombre. De acuerdo, así que eso es Sociedad y luego la API de librería. Y déjame solo decir una guerra de césped. Ahí vamos. Entonces si traté de validar la conexión, solo intentará verificar que realmente pueda ponerse en contacto con el sitio. Y una garrapata verde significa que estamos bien para ir. Si miramos la configuración, verías que el marco objetivo, que es el cinco neto, sube para la actualización reciente. Y luego tenemos las opciones de publicación de archivo para que puedas eliminar todos los archivos que ya están ahí. Te encanta lo fresco, aplaude cada vez. Se puede mirar a la deidad BASECASE. Sí, la conexión predeterminada aquí, esta es nuestra conexión de base de datos local. Tienes por acuerdos shuns que pueden hacer. Y también puedes instalar servicios extendidos de registro. Entonces tal vez no quieras, quieres tener cuidado con lo que marques, porque estas cosas cuestan dinero. Entonces, ya sabes, cuantas menos cosas sean las tic, menos valor teórico del dinero pero gasto, pero solo para tener mucho cuidado. Entonces solo estoy caminando a través de esto. Entiende lo que estás mirando. Entonces puedo seguir adelante y ver si eso es y entonces verás que mi nueva URL del sitio sería que cuando sí se publique, aún no hemos publicado nada. Lo siguiente que tenemos que hacer es configurar la base de datos. Ahora éste va a costar dinero. No hay base de datos gratuita, o al menos al momento de esta grabación no hay libre. Por lo que solo voy a seguir adelante y hacer clic en Configurar, elegir Base de datos SQL de Azure. Y a menos que seas uno de esos conmutadores de configuración híbridos generalmente facilitados por las grandes corporaciones y es posible que no puedas hacer en la base de datos local. En las instalaciones significa dónde estás versus en el código. Si todo está en el código, todo está accesiblemente. Si es local, entonces vas a necesitar algunas redes avanzadas y buenas maneras. Y como dije, las cooperaciones más grandes tienden a apoyar eso. No soy un soporte de hebra que es más barato para mí solo crear la base de datos SQL y local. Por lo que fui a seguir adelante y hacer clic en plus para agregar una base de datos. Entonces me pregunta ¿qué hace el DSMB S? Eso es lo que quiero librería dash API underscore DB. De esta manera el nombre predeterminado está dando por el nombre del proyecto y ese es el suyo. Es decir, es obvio, está bien. Elijo el grupo de recursos que acabo de crear. Por lo que siempre es bueno, sobre todo en cerrado para mantener todo dentro del mismo grupo de recursos. Y todo puede estar en un solo contenedor. Eso es lo que significa grupo de recursos. El servidor de base de datos. No hablo en servidor activo. Entonces porque no quiero tener un servicio activo para base de datos, para Azure SQL. Tengo que crear un servidor. Así que me fui a crear nuevo por aquí. Y luego se va a poner en marcha un servidor entero. Me va a pedir el nombre de usuario y sólo voy a poner una contraseña que sé que puedo recordar. Entonces eso es muy importante. Asegúrate de que puedas recordar el analizador porque lo necesitas para iniciar sesión más adelante. Haz clic en Aceptar y luego él llenará el resto por ti y ellos van adelante y dan clic en Crear. Entonces eso va a crear el servidor y configurarlo para la conectividad. Y bueno, ese proceso puede haber tardado un tiempo, pero una vez que finalmente se haya hecho, puedes seguir adelante y dar click siguiente. Te mostrará la cadena de conexión. Por lo que sabe que buscamos conexión por defecto en nuestro proyecto. Por lo que sólo lo va a llamar conexión predeterminada. Ahí sí te pide que proporciones tu nombre de usuario y contraseña que acabas de crear. Entonces yo sólo voy a hacer eso. Y lo que pasa es que en realidad sólo va a poner eso en esta cadena de conexión. Por lo que en realidad puedes simplemente copiar esa cadena de conexión. Puedes verlo si quieres. Pero puedes tener cuidado con eso porque va a tener el nombre de usuario y contraseña que acabas de ingresar aquí. También puedes optar por usar la configuración de la aplicación son el Key Vault. Key Vault es más seguro, pero luego una vez más, eso cuesta. Por lo que solo lo dejaré en la configuración de la aplicación y luego solo haga clic en siguiente. Y cualquier otra cosa que nos pregunte acabamos de hacer clic Finalizar como tu y Microsoft ni mejor así que nada sugieran que sí haga click Siguiente y hazle saber que te interesa y luego podemos cerrar para que el botón de precaución se haya ido. Nuestra base de datos ya se ha ido. Afigurado, intentemos hacer un publicado. Por lo que solo voy a dar clic en publicar. Y sólo va a seguir adelante y hacer algunas, algunas operaciones en el medio. De acuerdo, así que cuando termine nuestra operación publicada, intentará lanzar todo molesto y esto es lo que estoy recibiendo en este momento. Entonces déjame tratar de llegar a mis conos. De acuerdo, así que estoy conectado a mis conos xhr y quería ir y tratar de ver todos los recursos. Ya veo aquí. Tengo la web, el App Service, ¿no? Entonces tienes la propia base de datos SQL. Y luego área conocida del plan de servicio, que básicamente es solo una forma elegante de decir el server.js que aloja el servicio, así como el servidor de servicios SQL, ¿verdad? Entonces déjame mirar en nuestra aplicación web. Entonces a veces todo nodo porque le falta una configuración. Creo que sé lo que es, pero sólo quería mostrarles cómo pueden ir sobre una especie de depuración y averiguar qué está pasando. Entonces lo que queremos hacer es ir a herramientas avanzadas. Y entonces esta herramienta avanzada se llama Khufu, ¿verdad? Por lo que nos da algunas operaciones en lo más bajo realmente interrumpió el servicio o los archivos subyacentes o infraestructura. Por lo que quería ir a la consola de depuración y voy a navegar al sitio www root. Y entonces podemos ver todos los archivos que se habrían publicado desde esta perspectiva, ¿no? Entonces desde aquí voy a do.net y librería dash api dot DLL. Entonces este no soy yo. Iniciando la aplicación ahí está, Bookstore dot DLL. Y esa consola sólo me da toda una contundencia. Entonces volvamos a subir y ver. Entonces esto es una advertencia. De acuerdo, puedo pasar por esa, pero entonces aquí se ve el fracaso. Entonces en lo siento, sigue saltando. Entonces en este punto dice fallar y se está quejando que ocurrió una excepción para el contexto. Y luego dice que no puede encontrar es B reglas netas ahora así que si es empresa habilita, En otras palabras, puede encontrar la base de datos. Algo está pasando con la puntual las tablas de la base de datos. Entonces déjame solo llevarnos que Azur vaya a la base de datos sí y luego podamos mirarla. Bueno, bueno, es una realmente quiere que ella conecte cuerdas. Entonces solo quería saber cómo me conecto a este servidor de base que pueda usar realmente mis herramientas locales. Por lo que ya tengo instalado mi Management Studio. Y así en realidad quiero conectarme a este servidor usando mi, mi, mi servidor local o mis herramientas locales. Entonces puedo seleccionar este servidor igual a parte, solo consigue ese TCP. Entonces el número de puerto que dice mi servidor. Por lo que a escuela con estudio de gestión de la demanda y conéctate. Y luego estoy usando la autenticación del servidor porque necesito usar esas mismas credenciales que acababa de liquidar mientras creaba el servidor para usar esas para conectarme. Conocer tendencias de conducta te va a decir que no tienes acceso porque necesitas realmente configurar algunas reglas de firewall o un bajo para que el firewall para que el tráfico externo llegue a tu servidor. Por lo que desde aquí puedo iniciar sesión y luego habilitarlo. Entonces voy a seguir adelante y hacer eso y dejar que veas. Entonces una vez que verifique que soy YM, le preguntaremos si quería agregar mi dirección IP de cliente, otro giro de venta, porque no necesito todo el internet para llegar a esta base de datos. No necesito mi máquina. Entonces una vez que estoy aquí puedo mirar y veo mi idea a BCE. Y esto es algo así, así que déjame acercar un poco para ti. Y entonces puedo ampliar mi base de datos y mirar las tablas. Y luego cuando se necesitan fondos, ¿qué no ves? Entonces ese es nuestro problema. No hay bases de datos. Entonces sí, creó la base de datos, pero una vez que falló en hacer fue realmente llevar a cabo alguna de las migraciones. Entonces déjenme volver a los estudiantes visuales, ver qué escenario había para eso. Entonces creo que si voy a Editar, voy a configuración, y luego se va a sacar para descubrir las bases de datos ahí. De acuerdo, así puedo dejar esto, no lo hagas, pero, y veo esta migración inédita, es decir, cuando estoy publicando a esto, ¿qué aplico? ¿ Verdad? Por lo que sólo puedo decir guardar y luego hacer otro Publicar. Entonces una vez que volvamos a revisar nuestra base de datos que en ese último despliegue se verá hecha la migración. No obstante, todavía no estamos terminados porque no tenemos nuestras mesas de libros y autores. Entonces el problema es que recuerden que hicimos Base de Datos Primero, nos acercamos a todo este proyecto desde la premisa que la base de datos ya existía y se conectaban a ella. Entonces no tenemos archivos de migración para esos qué debo decir, esas tablas, bien, esos archivos. Entonces lo que voy a hacer es simplemente crear una migración. Y entonces podemos intentarlo. Eso es otra vez alguien simplemente diga agregar migración. Y vamos a decir añadir existente redactado de manera diferente si quieres tablas. Entonces solo crearemos esa migración. Y luego esa migración, No, tomaremos en cuenta el hecho de que tenemos la tabla de autores que necesitamos crear, una tabla de libros que necesitamos crear. Y a medida que se le agrega, es posible que tenga otras mesas y así sucesivamente. Entonces ahora que estamos publicando de nuevo donde le dijo que debería sumar la migración. Permítanme simplemente comprobar que esa opción está ahí. De acuerdo, así dicen esos aplicar migración. Entonces eso está bien. Déjame seguir adelante y publicar me pongo. Y cuando miramos en nuestro Estudio de Gestión o ningún CO, dos tablas que faltaban. Por lo que los autores y los libros están ahí. Entonces sabemos que cada vez, y esta no es necesariamente la mejor práctica, esto somos nosotros haciéndolo, pero extraño para mí, hijo enfermo en un entorno real, en un entorno de producción, tú nunca tendría migraciones automáticas. De acuerdo, mejor práctica sería que usted sería que use crypt, no la base de datos con todas las tablas y artefactos y cualquier cosa que se necesite crear. Se lo entregues a tu senior, ya sea un DBA o tu desarrollador senior, y luego lo metes en el sistema. Pero nunca, nunca es una buena práctica automatizar tu migración. De acuerdo, entonces donde buck con golpe de Estado después de que hayamos hecho esos dos últimos, publica sobre para saber que todavía estás viendo el error 500, el error que vimos inicialmente. Así que intentemos esto de nuevo donde decimos una.net librería api dot DLL. Veamos qué está pasando esta vez. Muy bien, entonces nuestra aplicación no está teniendo ningún problema en lo que esto indica. Pero entonces una vez más, todavía estamos sacando esta URL. Es poder encontrar nuestro sitio. Entonces al menos sabemos que hemos sacado ciertas cosas. Entonces cualquiera que publicara, tenemos que asegurarnos de que la base de datos esté funcionando y funcionando. Y podemos ver que eso es lo que está pasando aquí. Entonces volvamos a tu puerta trasera para arriba y veamos qué otros ajustes podrían haber ahí. Como no me voy, esto es lo que vamos a hacer. Entonces como realmente lo sientes, dominate core realmente nos da la capacidad de ver los registros basados en cosas que podrían estar saliendo mal en nuestro sitio. Entonces voy a ir al sitio, volver a w, w roots, traer nuestro archivo de configuración web para poder editar este archivo aquí mismo. Y voy a cambiar este registro std, les habilitó cambiar esto a verdadero. Entonces, lo que esto hará en realidad se produce mucho porque a veces se está ejecutando la obligación, pero hay algo más en la infraestructura subyacente que está provocando que falle. Por lo que al habilitar ese registro, ahora podemos ver un archivo de registro físico y ya hemos establecido TO las importaciones en los archivos de registro son. Y la ubicación para el archivo de registro sería una perspicacia en conocidos que son archivos de registro raíz y deberíamos verlo aparecer aquí. Entonces déjame intentar ejecutar la aplicación una vez más, unas cuantas veces y ver si algo, si aparece algún archivo de registro para mí. De acuerdo, entonces no surgió nada en mi carpeta de registro. Déjame volver a Uzziah y sólo asegúrate de que todo esté bien. Entonces Buck en la web y estoy viendo aquí que la URL, la URL reset, el euro, restablecieron a estos valores. Entonces esa es nuestra URL. Todo este tiempo intentaba ir a la URL que escribía, que es dash galardones de la industria de la EPA. Entonces probemos esta URL y veamos Qué está pasando. Y voila, hermosa, hermosa vista que estamos viendo son API swagger, como sabemos que deberíamos estar viendo. Y la excepción es que esto no se está ejecutando en nuestra máquina local. Esto no es carga. ¿ Está bien? Por lo que si utilizas dinero postal debería poder ir a través de internet y acceder a tu API que has construido. Tenga en cuenta que tenemos nuestra API alojada. Lo que queremos hacer es publicar nuestros blazer ups, pero para asegurarnos de que están apuntando a esta API alojada en lugar de tratar de ver la local. Entonces lo haremos cuando regresemos. 71. Deploy el servidor de Blazor al servicio de la aplicación web: Oigan chicos, bienvenidos de nuevo. Entonces ahora que tenemos nuestra API, necesitamos imprimir nuestras aplicaciones blazer de por vida en Azure. Por lo que tenemos nuestra API siendo alojada en esta dirección. Entonces necesitamos cumplir con esto, la URL base en nuestro extremo, 0.5 para tanto el ensamblado web como el servidor estará haciendo servidor, ¿verdad? No, ¿qué? Queríamos verlo diez, así que no olvides qué es eso. Nuestra URL base para nuestra API hospedada mostrada. Por lo que vamos a seguir adelante y se publican actividad, click derecho, click, Publicar. Elegimos un 0. El web, el Azara observar es lo que podemos reutilizar el mismo servicio up que ya tenemos. Simplemente lo sobrescribiría, ¿verdad? Entonces necesito simplemente agregar un nuevo servicio, y este es para la interfaz de usuario de la librería. Entonces no voy a cambiar ningún nombre. Podemos reutilizar el mismo grupo de recursos y puedo ponerlo en el mismo plan de hosting. Entonces todo eso está bien. Pero el servicio en sí es el contenedor real para los archivos para la aplicación web. El plan de hosting, una vez más es más que la máquina que estaremos hospedando. Para que pueda seguir adelante y hacer clic en Crear. Y las que se hace la actividad de creación, puedes seguir adelante y hacer clic en terminar. Y luego nos va a llevar a esta pantalla familiar, excepto que nos va a decir algo sobre qué son las señales y la configuración. Pero si hago clic en Publicar, va a entonces me pide que tenga que configurar la señal r Así que recuerda que este es el servidor que el servidor blazer que estamos desplegando. Y creo que ya tengo los servicios de alias sigma habilitarlo. Por lo que no conseguí esas balas prontas. Si sí consigues el prompt, los cargo para instalar la señal. Nuestros servicios y todo eso solo serán Bootstrap para ti y estarán a tu referencia de proyecto en consecuencia y publicarán tu sitio web. Entonces aquí está nuestra aplicación de servidor blazer funcionando. Entonces vamos a probarlo. Entonces si trato de iniciar sesión y recuerdo que ya hubiera sido del fondo marino. Algunos usuarios por defecto todavía tienen admin, bookstore.com, Piazza y Na. Y luego si inicio sesión éxito con anual para abreviar, hablando con la API, ahí estoy. Si voy a los autores, se va a batir sin embargo. A los autores, no hay autor que cargar. Puedo crear uno nuevo. Yo solo estoy ahí vamos. Entonces ahora sabemos con certeza que nuestro blazer up está hablando con nuestra API. 72. Deploy Blazor WebAssembly a la web en Azure Web App: Oigan chicos, bienvenidos de nuevo. Por lo que hemos publicado nuestra API y hemos publicado nuestro servidor blazers. Y si miraras de cerca entre los dos, verías que no había mucha diferencia en cuanto a publicar en Azure. Sí, mejor requirió algún trabajo adicional con la base de datos. Pero los dos de la aplicación's funcionaron de manera bastante similar al publicar para saber para el ensamblado web, es ligeramente diferente porque esto no está basado en servidor. Se trata de una aplicación estática. Y así Azure tiene un contenedor estático para este tipo de sitios web. Por lo que vamos a estar haciendo pasos ligeramente diferentes para nuestro ensamble web. Antes de pasar a la parte editorial sin embargo, sólo tengo algunos cambios de código que quería señalar para nuestro archivo program.cs. Por lo que el archivo program.cs en nuestro ensamblado web, vamos a hacer los siguientes ajustes. principio, habríamos tenido una línea que nos hubiera dado los servicios de agregar punto constructor. Así que tenía una línea aquí para agregar manejador de token de seguridad JWT de alcance. Vamos a quitar esa línea. Se ha comprobado que es buggy. Y alguien señaló que tenemos que hacerlo un poco diferente. Entonces lo que vamos a hacer en su lugar es debajo donde inicializamos nuestro cliente HTTP. Sólo vamos a tener dos líneas que se parecen a esto. Entonces eso es un subrayado. Aquí, es un subrayado. Ahí vamos. ¿ Encabezado out y guión bajo es igual a nueva carga útil JWT. Y luego tenemos que hacer ajustes similares a nuestro manejador de autenticación, o más específicamente al API Authentication StateProvider. Y lo que vamos a hacer es eliminar el, antes de quitar, vamos a inicializar el manejador de token de seguridad JWT en el propio archivo. Entonces, en lugar de inyectarlo, solo vamos a tener un manejador de token de seguridad JWT privado de solo lectura. Y luego el manejador de tokens es igual al manejador de tokens JWT. Por lo que inicialmente en el trie, empezamos con esta línea var manejadores Tolkien iguales a nuevo token JWT bajo. Por lo que puedes quitar eso y simplemente inicializar el objeto en la parte superior aquí. Y luego en el amado en función, también teníamos esa línea para poder quitarla también. De acuerdo, entonces nuestro objeto manejador Tolkien es conocido global para toda la clase. No se está inyectando. Y entonces podemos usarlo en consecuencia para que puedas hacer esos dos ajustes. Y luego nos vamos a meter en las cosas divertidas, que es el despliegue real de nuestra aplicación. Entonces inicia sesión en el portal y mientras estás ahí, quiero que sigas adelante y crees un recurso. Entonces desde el mercado que vamos a buscar, solo voy a escribir estática. Y luego quiero una aplicación web estática. Todavía está en vista previa, pero es lo suficientemente estable para que podamos competir nuestras tareas. Entonces vamos a seguir adelante y decir Crear. Y nos va a dar un pequeño formulario para llenar para que nuestro recursos donde use el mismo grupo de recursos para todo lo demás. Yo sólo voy a renunciar a esta web el nombre blazer dash FUE alguna razón para mí, EU Este, NOSOTROS dos. Entonces requerirán que te identifiques con GitHub. Entonces lo que sucede es que la configuración predeterminada para esto va a configurar la implementación continua y la tubería de integración usando acciones de GitHub. Por lo que requieren que te identifiques con GitHub. Entonces desde el principio, te animaría a llegar, a llegar a conos de Hobart para estar revisando tu código en GitHub. Bueno, aquí es donde todo se integra. Entonces vamos a seguir adelante e iniciar sesión con GitHub. Esto lo autoriza. Y entonces solo te van a hacer algunas preguntas. Entonces no tengo nada especial que poner aquí, el repositorio o duro todo su repositorio positivo en GitHub. Voy a elegir mi API de librería. Y entonces la rama es maestra. Después bajamos a los detalles de la acumulación, cuales no tengo que dar ningún detalle. No se requiere. Por lo que siempre verás el asterisco cuando se requiere algo para que pueda seguir adelante y revisar y crear. La siguiente pantalla es apenas la mirada sobre. ¿ Estás seguro? Y luego voy a decir adelante y crear. Entonces lo que esto realmente va a hacer es configurar mi bien TO Bob colon con la configuración de despliegue en rápido como puede ver, realidad está probando en realidad está haciendo el despliegue, ¿verdad? No. Correcto. Y entonces va a crear el malestar. Si voy a Recurso, Entonces realmente o debería realmente poder llegar al recurso o a la aplicación desde aquí. Entonces cuando hago clic en ese enlace, bueno, solo están viendo tu aplicación web estática está en vivo y esperando contenido. Entonces tenemos que hacer algunas modificaciones. Si eres un senior arriba entonces te kudos, no hay problema. Ya lo has hecho. No obstante, si no estás viendo el arriba, entonces sólo quédese un poco porque estamos a punto de entrar en ello. Entonces para el historial de despliegue, solo voy a dar clic están bien, puedo editar el flujo de trabajo. Por lo que realmente es el archivo de flujo de trabajo, que es solo un archivo de configuración deseo que acabaran crear dentro de mi repositorio GitHub para este proyecto. ¿ Está bien? Y hay una parte clave en este archivo donde se habla de la aplicación. Entonces la aplicación aquí significa cuando miro en este repositorio, ¿ dónde encuentro arriba el Ensamblaje Web? Entonces cuando miramos en al menos la mía y si estás en se configuró la forma en que tengo la mía configurada, entonces vas a ver son entonces lo tendrías en la carpeta Web Assembly. Por lo que debes asegurarte de que sabes en qué carpeta año Web Assembly up está. Entonces voy a volver a los flujos de trabajo y Mackenzie, tengo que hacerlo porque en cento nacido antes, pero nos estamos centrando en este. años no tendrán el mismo nombre que el mío. Eso está bien. Simplemente bien. El uno y podemos sólo desde aquí en GitHub. Y aquí voy a cumplir con este ajuste. Entonces para la ubicación arriba, voy a poner la carpeta en el repositorio en el que se puede encontrar el OP, que es Librería dash white dot was. Y entonces puedo seguir adelante y comprometer estos cambios. Ahora lo bueno es que cuando hacemos un commit, realidad va a iniciar un despliegue cada vez que cometimos cambios iniciando despliegues. Entonces, ¿dónde vemos estos despliegues? Si hacemos clic en opciones, entonces podríamos ver todos los flujos de trabajo. Entonces en cualquier momento hacemos un comité, Candace, vamos a subastas y verás que está instalando su ya configuración con el ducto CIC y éste está en curso, y si hago clic en él, entonces me mostrará los trabajos en curso. Doy click, click en construir y desplegar y me va a mostrar que, acuerdo, está haciendo un constructor en No. Por lo que hay que darle unos momentos a esto. Entonces ya ves que estamos obteniendo alguna opción. ¿ Está bien? Y si no estás recibiendo esa acción y solo asegúrate de tener una ruta de carpeta de carrito, lo contrario fallará. Si miraras hacia atrás mis acciones, verías que algunos fallaron y eso se debió principalmente a que no tenía el camino correcto. Entonces con el camino correcto, no estarías viendo mejores resultados que eso. Y va a estar pasando. De acuerdo, ya ves, no, está ejecutando estas acciones y sabe que está en la construcción y despliegue miedos. Y mi axón phil eventualmente. Pero entonces en retrospectiva, realmente no he comprobado todos los maravillosos cambios que acabo de hacer. Todavía está tratando de publicar el viejo código para el que acabamos de tener correcciones. Entonces solo voy a seguir adelante y hacer un commit donde me ponga rápidamente, Lo siento, tengo que conseguir cambios. Debido al nuevo Visual Studio, ciertas cosas tienen barbilla, así que estamos en buenos cambios y tengo mi mensaje y solo pensé comprometer todo y sincronizar. Y una vez que hayamos hecho eso y esto es volver a pasar a git hub y comprobar de nuevo nuestro proceso. Entonces si vuelvo a hacer clic en Acciones, entonces verías que acabo de hacer ese check in y no es hacer el despliegue. Entonces démosle a eso unos que me den. Y este campo otra vez. Entonces tal vez estén teniendo mejor éxito que yo. Pero esto es bueno porque al menos cuando estas cosas fallan, es bueno saber y entender qué buscar cuando fallan. Entonces sospecho que podría haber algo mal con mi con mi archivo YAML que es el despliegue para que alguien vaya al código, vuelva a mirar los flujos de trabajo y revise. Y creo que veo cuál podría ser el problema. Entonces lo bueno es que en realidad tiene dos de estos archivos. Uno no estoy seguro funcionó y otro que no. No está funcionando. Entonces lo que voy a hacer es mirarlos uno al lado del otro y comparar y ver qué podría necesitar cambiar. Entonces solo voy a conseguir algo grande creativo aquí con mis Leodes. Entonces voy a tener copias de este tipo de archivo a ambos lados. Entonces este lado es el que necesitamos para ponernos a trabajar. El Islam de izquierda no funciona y a la derecha es el que funcionó para mí en el pasado. Entonces solo estoy mirando a través para ver qué podría ser diferente en cuanto estas configuraciones ya que la aplicación es la misma en ambos lados. Arriba ubicación es librería, la librería UI.r. guassian en ambos lados luego tienen ascensor API. Lo mantuve un en un set y común Y otro. Sólo déjame normalizar eso. También tienen www Rutan que no están del otro lado, pesar de que sí dice opcional, pero en este punto no estoy del todo seguro de lo que no está funcionando. Por lo que sólo quería asegurarme de que tengo todo contabilizado. Entonces con esos cambios, realmente no estoy viendo nada más que pudiera ser diferente. ¿ Verdad? Entonces solo voy a seguir adelante y ahorrar. Y por supuesto que ese guardar desencadenará otra compilación. Entonces veamos las subastas y veamos qué pasa esta vez. Y esos cambios parecen haber hecho el truco para mí. Entonces, ¿qué es un despliegue exitoso al menos según github? Entonces voy a volver atrás, refrescar mis sitios web y cargar, descargar. Ahí vamos. Muy bien, así que esta es nuestra aplicación Web Assembly que se ejecuta desde Azure para causar nuestro bowl, finalmente llegamos allí. Entonces si solo hago un login solo para verificar que está hablando a las API. Entonces eso es libro de administración store.com y sé que un punto. Y luego tratamos de iniciar sesión. Y ahí vamos, donde ingresó con éxito. Si hago clic en autores, es cuando traer a los autores que hubiera creado previamente a partir de esta aplicación de servidor. Ambos están hablando con la misma API, ambos alojados en Azure. Epa está en Azure. Todo se ha desplegado sabiendo saber hacer para desplegar un servidor API blazer y conocer nuestro subensamblaje. Y lo mejor de todo es que se trata de las aplicaciones web progresivas. En realidad puedo simplemente instalar esto directamente desde el navegador y será una aplicación real en mi computadora, no. Está bien. Por lo que esta es una aplicación real que se ejecuta desde el equipo, pero hablando con la EPA, siendo alojada en Azure.