Closed virtor closed 9 years ago
Es importante tener en cuenta que no existe un estándar concreto para la especificación de horarios de apertura de lugares (comercios, equipamientos, etc.), por lo que la solución que se tome en este momento podría modificarse en el futuro si termina de surgir un estándar en este sentido. Algunas de las propuestas que se han hecho hasta el momento son las siguientes:
También se puede considerar la propuesta, sencilla, de @jrub en su feedback sobre el uso de la API de Zaragoza (https://gist.github.com/jrub/8707031fb834d80a7828).
Propuesta que se puede considerar para la descripción de horarios, basada en el comentario anterior.
"openingHours": {
"periods": [
{"open": {"day": "Monday", "time": "09:00"},
"close": {"day": "Monday", "time": "15:00"}},
{"open": {"day": "Monday", "time": "17:00"},
"close": {"day": "Monday", "time": "21:00"}},
{"open": {"day": "Tuesday", "time": "10:00"},
"close": {"day": "Tuesday", "time": "21:00"}},
...
}
Teniendo en cuenta las diferentes propuestas y aportaciones hemos pensando en optar por la siguiente descripción de horarios:
{
"openingHours": {
"periods": [
{
"day": "Monday",
"open": "09:00",
"close": "15:00"
},
{
"day": "Monday",
"open": "17:00",
"close": "19:00"
},
{
"day": "Tuesday",
"open": "10:00",
"close": "21:00"
}
]
}
}
¿Esto dónde iría, dentro de cada lugar
que devuelve el API?
También me surge la duda de la zona horaria. Durante el Hackaton ZgzAppStore nos pasó que el API devolvía un GMT y nosotros la considerábamos GMT+1.
Yo pondría las horas en formato extendido indicando la zona horaria.
También se podría hacer en formato UTC y que luego cada cual se lo comparta a su zona horaria
Dentro de cada evento. Incluir la zona horaria es buena idea, aunque curiosamente schema.org o APIs como las de foursquare, google places, no lo especifican.
Supongo que no lo ponen porque pondrán UTC y luego cada cual adapta al usarla, creo que es buena opción. Poner las horas en formato extendido como dice @francho también me parece mejor, el formato "18:00" casí parece algo para mostrar por pantalla, más que para consumir de un API.
Lo he estado pensando, y siendo que todo lo que ofrece el API es relativo siempre a la misma zona horaria, igual no hay que complicarlo más y dejarlo en el formato propuesto por @txtbits. Eso sí, actualmente algunas APIs devolvían GMT y otras GMT+1, si no recuerdo mal del Hackaton. Ese tipo de cosas, junto con la gestión del cambio a horario de verano (GMT+2) tiene que estar bien montado en el servidor. Si eso rula bien, creo que sería suficiente, ¿no?
La hora en GMT+1 se utiliza en los conjuntos de datos disponibles vía SOLR, porque es su forma de trabajar internamente con las fechas.
Es un tema que hemos tenido que explicar a diferentes personas por lo que creemos que es más fácil mostrar la hora local como indican en Google Places en opening_hours -> periods, aunque sea más formal como propone @francho
La información referente a los horarios queda de la siguiente manera:
"subEvent": [
{
"horario": "string",
"comentarios": "string",
"horaInicio": "string",
"horaFinal": "string",
"openingHours": [
{
"dia": "string",
"horaApertura": "string",
"horaCierre": "string"
}
]
}
],
A través del vector OpeningHours se pueden establecer múltiples horarios de apertura/cierre haciendo diferentes combinaciones con el campo día:
Ejemplo de actividad:
{
"id": 000000,
"title": "Título de la actividad",
"subEvent": [
{
"lugar": {
...
},
"horario": "Lunes de 9 a 10. Miércoles de 11 a 12. Viernes de 13 a 14h",
"fechaInicio": "2015-10-02T00:00:00Z",
"fechaFinal": "2015-10-23T00:00:00Z",
"openingHours": [
{
"dia": "Lunes",
"horaApertura": "09:00",
"horaCierre": "10:00"
},
{
"dia": "Miércoles",
"horaApertura": "11:00",
"horaCierre": "12:00"
},
{
"dia": "Viernes",
"horaApertura": "13:00",
"horaCierre": "14:00"
}
]
}
],
...
}
Se mantienen los campos horario y comentarios a nivel de subEvent permitiendo la introducción de texto libre para aquellas actividades en las que exista algún dato especial referente al horario y para aquellas actividades en las que no se pueda establecer un horario estructurado.
Actualmente en el campo horario se permite la introducción de texto libre, para que se pueda reutilizar sería necesario que la información estuviera más estructurada.