1. JSON: API Specification
1.1. Es una especificación de como un cliente, debe solicitar que se busque o modifiquen los recursos y como un servidor debe responder a esa solicitud
1.2. Por qué utilizar la especificación. JSON: API
1.2.1. Al tener reglas preestablecidas tanto backend como el Frontend pueden ser desarrolladas sin paralelo
1.2.2. Se minimiza el tiempo de desarrollo, al no tener que crear tu tu propia convención
1.2.3. Es una buena práctica
1.3. Estructura de un documento
1.3.1. Data
1.3.1.1. Contiene la información principal del documento
1.3.2. Errors
1.3.2.1. Contienen los errores
1.3.3. Meta
1.3.3.1. Cualquier información adicional
1.3.4. Included
1.3.4.1. Contiene todos los objetos de recursos que están relacionados con los datos primarios
1.3.5. Links
1.3.5.1. Contienen los links de paginación
1.3.6. jsonapi
1.3.6.1. Versión de la API
2. API
2.1. Application programming Interfaz (interfaz de programación de aplicaciones)
2.2. Son programas que permiten que otros programas se comuniquen con ella
2.3. Se basa en Peticiones - Respuesta
3. Rest
3.1. Representation State Transfer (Transferencia de estado representacional)
3.2. Es un conjunto de guías
3.3. Restricciones
3.3.1. Cliente- Servidor
3.3.1.1. Separación de responsabilidades, la API debe estar separada del cliente
3.3.2. Sin estado
3.3.2.1. Cada petición contiene toda la información necesaria
3.3.3. Cacheable
3.3.3.1. Las respuestas de las API se pueden almacenar en caché de forma implícita, explícita u negociable
3.3.4. Interfaz uniforme
3.3.4.1. La petición deberá identificar los recursos que está buscando (a través de una URL)
3.3.5. Sistema de capas
3.3.5.1. Los servicios Rest están orientados a la escalabilidad y el cliente no sabe si la petición se realiza a un servidor directamente
3.3.6. Code on demand
3.3.6.1. Indica que el servidor puede extender o personalizar temporalmente la funcionalidad del cliente mediante la transferencia de la lógica
4. HTTP
4.1. HyperText Transfer Protocol (Protocolo de transferencia de Hypertexto
4.2. Peticiones
4.2.1. Estructura
4.2.1.1. Método o verbo HTTP
4.2.1.2. URI(Uniform Resource Identifier)
4.2.1.3. Cuerpo
4.2.2. GET:Obtener recursos
4.2.3. POST: Crear un recurso
4.2.4. PUT: Reemplazar un recurso
4.2.5. PATCH: Actualizar un recurso
4.2.6. DELETE: Eliminar un recurso
5. Resource
5.1. Es cualquier información, datos o cosa que podemos nombrar
6. Respuestas HTTP
6.1. códigos de estado
6.1.1. Información
6.1.1.1. 1xx
6.1.2. Éxitosos
6.1.2.1. 2xx
6.1.2.1.1. 200 Ok
6.1.2.1.2. 201 Created
6.1.2.1.3. 204 No content
6.1.3. Redirección
6.1.3.1. 3xx
6.1.3.1.1. 301 movido permanentemente
6.1.4. Error Cliente
6.1.4.1. 4xx
6.1.4.1.1. 401 no autorizado
6.1.4.1.2. 400 mala petición
6.1.4.1.3. 403 prohibido
6.1.4.1.4. 404 No encontrado
6.1.5. Error Servidor
6.1.5.1. 5xx
6.1.5.1.1. 500 Error del servidor interno