Enviar una fecha por JSON mediante SERVICES

  • Posted on: 8 December 2014
  • By: rob

Recientemente me encontré en la situación de desarrollar una API en drupal 7 para una APP móvil, por lo que instalé SERVICES que me facilitaba mucho el trabajo. El problema que encontré fue a la hora de enviar determinados "campos" mediante json, sobre todo el campo date, ya que este tiene que construirse en JSON de la manera que indico para que funcione, también comentaré como configurar el campo "date" . ya que es posible que no en todos los casos se tenga que construir del mismo modo el array JSON con los datos de dicho campo date.

1 Configurar el campo date.

Primeramente creamos un campo tipo DATE cuyo FIELD TYPE será Date (ISO format) y en "WIDGET" seleccioné Select list , al configurar el campo marqué en "Date attributes to collect" todo menos "Second", y en Time zone handling "UTC" . Para evitar confusiones , he aquí mis capturas.


2 Json para crear el nodo.

METHOD: POST
URI: http://classicspark.local/api/v1/node

{
   "type":"fiesta",
   "title":"fiesta",
   "field_fiesta_description":{
      "und":[
         {
            "value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam "

         }
      ]
   },
   "users_fieldset ":{
      "users_flagged_organizar_fiesta ":{
         "iwue":"iwue",
         "admink":"admink"
      },
      "users_flagged_ver_fiesta":{
         "asdaasdasdasd":"asdaasdasdasd",
         "sasdsssssssssd":"sasdsssssssssd"
      }
   },


"field_calendar": {
    "und": [
      {
        "value": {
          "day": "17",
          "month": "9",
          "year": "2017",
          "hour": "9",
          "minute": "15",
          "ampm": "am"
        }
      }
    ]
  },


   "field_fiesta_location":{
      "und":[
         {
            "street":"avenida andaluc\u00eda",
            "city":"Granada",
            "country":"es",
            "latitude":"37.193343",
            "longitude":"-3.624614"
         }
      ]
   }
}

Fijarse bien como envío la fecha, anteriormente había probado de mil formas como "2014/27/09 00:00" , o "2014/27/09" con "-" etc etc.. y en la base de datos se insertaba mal, o simplemente no insertaba la tupla.