Modelado de Endpoints y JSON para API de PlatziTweets

Clase 24 de 52Curso de Desarrollo de Apps para iOS

Crear los modelos y guardar todas las direcciones de los servicios web de tu API va a ser una tarea a la que te vas a enfrentar en el mundo real.

Hemos creado una API para que todos los estudiantes de este curso puedan crear su propio PlatziTweets. A continuación, te daré la descripción de la API y los JSON que tendrás que tener en cuenta durante las siguientes clases:

Endpoint principal

Url: https://platzi-tweets-backend.herokuapp.com/api/v1

Al ser este Https, no será necesario que hagas ninguna excepción de seguridad. Aquí tienes tu primer reto, guarda este texto en algún lugar donde todas las clases puedan accederlo. Por ejemplo, puedes crear una estructura y agregarle un valor estático, algo así:

Endpoints.swift image4.png

(El nombre Endpoints me lo inventé yo, tú puedes ponerle el que quieras)

Ahora te daré una descripción breve de todos los endpoints que necesitaremos durante el proyecto para que todo funcione correctamente. Tienes una tarea, tendrás que crear estos JSON que te daré a continuación como estructuras Codables, así como lo hicimos en la clase en la que convertimos JSON a modelos.

Inicio de sesión

Url: https://platzi-tweets-backend.herokuapp.com/api/v1/auth

Tipo: POST

JSON para enviar:

image5.png

JSON de respuesta:

image2.png

Te ayudaré con el primer punto de la tarea, así te tiene que quedar la estructura que relaciona el JSON para enviar:

LoginRequest.swift image12.png

(El nombre LoginRequest me lo inventé yo, tú puedes ponerle el que quieras)

Así la estructura del JSON de respuesta:

LoginResponse.swift image7.png

(El nombre LoginResponse me lo inventé yo, tú puedes ponerle el que quieras)

ErrorResponse.swift image (6).png

así la estructura del JSON del usuario (que va en la respuesta):

User.swift

image3.png

(El nombre User me lo inventé yo, tú puedes ponerle el que quieras)

Y, por último, el endpoint del inicio de sesión a tu estructura de Endpoints, algo así:

image8.png

Ahora te daré los demás servicios web con sus respectivos JSON para que termines de agregar los endpoints y crear las estructuras, igual que como acabamos de hacer.

Registro

Url: https://platzi-tweets-backend.herokuapp.com/api/v1/register

Tipo: POST

JSON para enviar:

image10.png

JSON de respuesta:

image2.png

(Pssst, puedes usar el mismo del Login)

Obtener Tweets

Url: https://platzi-tweets-backend.herokuapp.com/api/v1/posts

Tipo: GET

JSON para enviar:

No requerido.

JSON de respuesta:

(Este es un Array de objetos)

image9.png

Publicar Tweet

Url: https://platzi-tweets-backend.herokuapp.com/api/v1/posts

Tipo: POST

JSON para enviar: Nota importante:

Los campos imageUrl, videoUrl y location son opcionales, un Tweet puede publicarse solo con texto.

image6.png

JSON de respuesta:

image11.png

Borrar Tweet

Url: https://platzi-tweets-backend.herokuapp.com/api/v1/posts/{ID_DEL_POST}

Tipo: DELETE

JSON para enviar:

No requerido.

JSON de respuesta:

image1.png

Sé que puede parecer mucho trabajo, pero te aseguro que podrás lograrlo en 15 minutos si te lo propones.

¡Nos vemos en la siguiente clase!