Back to top

Documentación API a implementar

Documentación online de la api a realizar en el trabajo integrador de la materia Projecto de Software de la UNLP.

API de CEDICA

En esta documentación describiremos los endpoints que creemos que son escenciales para la implementación correcta de la aplicación.

Estos endpionts serán implementados en la aplicación privada que les solicitamos y consultados/usados desde la aplicación pública.

Nota

Recordá que estos endpoints son los mínimos que nos imaginamos desde la cátedra como necesarios.

Si dentro del grupo o el doncente asignado consideran que es necesario agregar algún otro debido a la particularidades de la solución elegida deberán agregarlos.

Articles

Filtrar Artículos

Este endpoint permite buscar artículos filtrando por autor y/o rango de fechas de publicación, con soporte de paginación.

Lista Artículos con filtro
GET/articles{?author,published_from,published_to,page,per_page}

Obtiene una lista de artículos filtrados por autor y/o rango de fechas, con soporte de paginación.

Example URI

GET https://admin-grupoXX.proyecto2024.unlp.edu.ar/api/articles?author=María García&published_from=2023-10-10T01:00:00Z&published_to=2023-10-10T12:00:00Z&page=1&per_page=10
URI Parameters
HideShow
author
string (optional) Example: María García

Nombre del autor del artículo.

published_from
datetime (optional) Example: 2023-10-10T01:00:00Z

Filtra artículos publicados después de esta fecha.

published_to
datetime (optional) Example: 2023-10-10T12:00:00Z

Filtra artículos publicados antes de esta fecha.

page
number (optional) Example: 1

Número de página de resultados (para paginación).

per_page
number (optional) Example: 10

Número de artículos por página de resultados (para paginación).

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "title": "Apertura de inscripciones",
      "summary": "Se informa que se abren las inscripciones para el curso de...",
      "content": "Se informa que se abren las inscripciones para el curso de...",
      "published_at": "2023-10-10T11:00:00Z",
      "updated_at": "2023-10-10T12:00:00Z",
      "author": "María García",
      "status": "draft"
    }
  ],
  "page": 1,
  "per_page": 10,
  "total": 25
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "description": "Lista de artículos."
    },
    "page": {
      "type": "number",
      "description": "Número de página actual."
    },
    "per_page": {
      "type": "number",
      "description": "Cantidad de elementos por página."
    },
    "total": {
      "type": "number",
      "description": "Total de elementos en la lista."
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": "Parámetros inválidos o faltantes en la solicitud."
}

Messages

Crear Nuevo Mensaje

Este endpoint permite a una persona enviar un mensaje o solicitud de contacto a la institución.

Crea Mensaje
POST/messages

Envía un nuevo mensaje a la institución con la información proporcionada.

Example URI

POST https://admin-grupoXX.proyecto2024.unlp.edu.ar/api/messages
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Consulta sobre inscripción",
  "email": "maría@mailcom",
  "description": "Quisiera saber los pasos para inscribirme en el curso de...",
  "status": "created",
  "created_at": "2023-10-10T12:00:00Z",
  "closed_at": "2023-10-10T12:00:00Z"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Título del mensaje."
    },
    "email": {
      "type": "string",
      "description": "Email del remitente."
    },
    "description": {
      "type": "string",
      "description": "Descripción detallada del mensaje."
    },
    "status": {
      "type": "string",
      "description": "Estado inicial del mensaje, por defecto `created`."
    },
    "created_at": {
      "type": "string",
      "description": "Fecha de creación del mensaje (generada por sistema)."
    },
    "closed_at": {
      "type": "string",
      "description": "Fecha de finalización del mensaje (generada por sistema)."
    }
  },
  "required": [
    "title",
    "email",
    "description"
  ]
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "title": "Consulta sobre inscripción",
  "email": "maría@mailcom",
  "description": "Quisiera saber los pasos para inscribirme en el curso de...",
  "status": "created",
  "created_at": "2023-10-10T12:00:00Z",
  "closed_at": "2023-10-10T12:00:00Z"
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Título del mensaje creado."
    },
    "email": {
      "type": "string",
      "description": "Email del remitente."
    },
    "description": {
      "type": "string",
      "description": "Descripción del mensaje."
    },
    "status": {
      "type": "string",
      "description": "Estado del mensaje."
    },
    "created_at": {
      "type": "string",
      "description": "Fecha de creación del mensaje generada por el sistema."
    },
    "closed_at": {
      "type": "string",
      "description": "Fecha de finalización del mensaje (generada por sistema)."
    }
  },
  "required": [
    "title",
    "email",
    "description"
  ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "error": "Parámetros inválidos o faltantes en la solicitud."
}

Generated by aglio on 12 Oct 2024