API para la gestión de turnos

La app provee una interfaz para interactuar con el módulo de gestión de turnos del hospital.

La API se encuentra en la URL grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos.

Métodos de la API

A continuación se muestran los métodos disponibles en la API así como las consultas a ejecutar para probar el correcto funcionamiento de los mismos utilizando el comando curl o wget.

  • Obtener turnos para la fecha actual

Permite obtener los turnos disponibles para la fecha actual.

GET /

Respuesta correcta con turnos disponibles,

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos
HTTP/1.1 200 OK
{
    "appointments": [
        "10:00:00",
        "13:30:00",
        "14:00:00",
        "15:30:00"
    ]
}
  • Obtener turnos para la fecha dada

Permite obtener los turnos disponibles para la fecha dada.

GET /:date

Respuesta correcta con turnos disponibles,

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/YYYY-MM-DD
HTTP/1.1 200 OK
{
    "appointments": [
        "10:00:00",
        "13:30:00",
        "14:00:00",
        "15:30:00"
    ]
}

Respuesta erronea por fecha vencida,

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/2017-MM-DD
HTTP/1.1 204 NO CONTENT

Respuesta erronea por error genérico,

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/una-frase
HTTP/1.1 500 Internal Server Error
  • Reservar un turno

Permite reservar un turno para una fecha y hora dada, para un nro de documento dado.

GET /turnos/:documentNumber/fecha/:date/hora/:time
Donde:
  • documentNumber: número de documento del paciente a atender.
  • date: fecha del turno (se puede comprobar existencia en la ruta de turnos disponibles)
  • time: hora del turno (se puede comprobar existencia en la ruta de turnos disponibles)

Respuesta correcta con turno reservado,

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/40000000/fecah/YYYY-MM-DD/hora/HH:mm
HTTP/1.1 201 Created
{
    "appointment": {
        "documentNumber": 40000000,
        "date": "DD MM YYYY HH:mm:ss TZ"
    }
}

Respuesta erronea por falta de parámetros, o fecha/hora inválida

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/no-doc/fecah/una-frase/hora/
HTTP/1.1 400 BAD REQUEST

Respuesta erronea por turno ya tomado

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/40000000/fecah/YYYY-MM-DD/hora/HH:mm
HTTP/1.1 422 UNPROCESSABLE ENTITY

Respuesta erronea por error genérico,

$ curl grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/una-frase
HTTP/1.1 500 Internal Server Error
  • Eliminar un turno dado un id

Permite eliminar un turno dado su id

DELETE /turnos/:id

Respuesta correcta con un turno eliminado,

$ curl -XDELETE grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/id
HTTP/1.1 200 OK

Respuesta erronea por error genérico,

$ curl -XDELETE grupo74.proyecto2017.linti.unlp.edu.ar/api/turnos/id
HTTP/1.1 500 Internal Server Error